diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesController.kt index 462474312..3358fb47f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesController.kt @@ -10,7 +10,6 @@ import android.view.View import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.input.nestedscroll.NestedScrollConnection -import androidx.core.os.bundleOf import com.bluelinelabs.conductor.Controller import eu.kanade.domain.source.model.Source import eu.kanade.presentation.browse.SourcesScreen @@ -62,16 +61,7 @@ class SourcesController(bundle: Bundle? = null) : SearchableComposeController when { - mode == Mode.SMART_SEARCH -> { - router.pushController( - SmartSearchController( - bundleOf( - SmartSearchController.ARG_SOURCE_ID to source.id, - SmartSearchController.ARG_SMART_SEARCH_CONFIG to smartSearchConfig, - ), - ), - ) - } + mode == Mode.SMART_SEARCH -> router.pushController(SmartSearchController(source.id, smartSearchConfig!!)) preferences.useNewSourceNavigation().get() -> openSource(source, SourceFeedController(source.id)) else -> openSource(source, BrowseSourceController(source)) } diff --git a/app/src/main/java/exh/ui/smartsearch/SmartSearchController.kt b/app/src/main/java/exh/ui/smartsearch/SmartSearchController.kt index 94d99be58..75f14af17 100644 --- a/app/src/main/java/exh/ui/smartsearch/SmartSearchController.kt +++ b/app/src/main/java/exh/ui/smartsearch/SmartSearchController.kt @@ -3,6 +3,7 @@ package exh.ui.smartsearch import android.os.Bundle import android.view.LayoutInflater import android.view.View +import androidx.core.os.bundleOf import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.databinding.EhSmartSearchBinding import eu.kanade.tachiyomi.source.CatalogueSource @@ -17,29 +18,28 @@ import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import uy.kohesive.injekt.injectLazy -class SmartSearchController(bundle: Bundle? = null) : NucleusController() { +class SmartSearchController(bundle: Bundle) : NucleusController() { private val sourceManager: SourceManager by injectLazy() - private val source = sourceManager.get(bundle?.getLong(ARG_SOURCE_ID, -1) ?: -1) as? CatalogueSource - private val smartSearchConfig: SourcesController.SmartSearchConfig? = bundle?.getParcelable( - ARG_SMART_SEARCH_CONFIG, + private val source = sourceManager.get(bundle.getLong(ARG_SOURCE_ID, -1)) as CatalogueSource + private val smartSearchConfig: SourcesController.SmartSearchConfig = bundle.getParcelable(ARG_SMART_SEARCH_CONFIG)!! + + constructor(sourceId: Long, smartSearchConfig: SourcesController.SmartSearchConfig) : this( + bundleOf( + ARG_SOURCE_ID to sourceId, + ARG_SMART_SEARCH_CONFIG to smartSearchConfig, + ), ) - override fun getTitle() = source?.name.orEmpty() + override fun getTitle() = source.name - override fun createPresenter() = SmartSearchPresenter(source!!, smartSearchConfig!!) + override fun createPresenter() = SmartSearchPresenter(source, smartSearchConfig) override fun createBinding(inflater: LayoutInflater) = EhSmartSearchBinding.inflate(inflater) override fun onViewCreated(view: View) { super.onViewCreated(view) - if (source == null || smartSearchConfig == null) { - router.popCurrentController() - applicationContext?.toast("Missing data!") - return - } - presenter.smartSearchFlow .onEach { results -> if (results is SmartSearchPresenter.SearchResults.Found) { @@ -63,7 +63,7 @@ class SmartSearchController(bundle: Bundle? = null) : NucleusController