diff --git a/app/src/main/java/exh/ui/smartsearch/SmartSearchController.kt b/app/src/main/java/exh/ui/smartsearch/SmartSearchController.kt index 4e5cbbfab..d87cf7862 100644 --- a/app/src/main/java/exh/ui/smartsearch/SmartSearchController.kt +++ b/app/src/main/java/exh/ui/smartsearch/SmartSearchController.kt @@ -1,14 +1,27 @@ package exh.ui.smartsearch import android.os.Bundle -import android.view.LayoutInflater import android.view.View +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.unit.dp import androidx.core.os.bundleOf +import eu.kanade.presentation.components.AppBar +import eu.kanade.presentation.components.Scaffold import eu.kanade.tachiyomi.R -import eu.kanade.tachiyomi.databinding.EhSmartSearchBinding import eu.kanade.tachiyomi.source.CatalogueSource import eu.kanade.tachiyomi.source.SourceManager -import eu.kanade.tachiyomi.ui.base.controller.NucleusController +import eu.kanade.tachiyomi.ui.base.controller.FullComposeController import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction import eu.kanade.tachiyomi.ui.browse.source.SourcesController import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceController @@ -19,7 +32,7 @@ import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import uy.kohesive.injekt.injectLazy -class SmartSearchController(bundle: Bundle) : NucleusController() { +class SmartSearchController(bundle: Bundle) : FullComposeController() { private val sourceManager: SourceManager by injectLazy() private val source = sourceManager.get(bundle.getLong(ARG_SOURCE_ID, -1)) as CatalogueSource @@ -36,7 +49,32 @@ class SmartSearchController(bundle: Bundle) : NucleusController + AppBar( + title = source.name, + navigateUp = router::popCurrentController, + scrollBehavior = scrollBehavior, + ) + }, + ) { + Column( + modifier = Modifier + .fillMaxSize() + .padding(it), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(8.dp, Alignment.CenterVertically), + ) { + Text( + text = stringResource(R.string.searching_source), + style = MaterialTheme.typography.titleLarge, + ) + CircularProgressIndicator(modifier = Modifier.size(56.dp)) + } + } + } override fun onViewCreated(view: View) { super.onViewCreated(view) diff --git a/app/src/main/java/exh/ui/smartsearch/SmartSearchPresenter.kt b/app/src/main/java/exh/ui/smartsearch/SmartSearchPresenter.kt index 43451f251..3852387b4 100644 --- a/app/src/main/java/exh/ui/smartsearch/SmartSearchPresenter.kt +++ b/app/src/main/java/exh/ui/smartsearch/SmartSearchPresenter.kt @@ -3,16 +3,16 @@ package exh.ui.smartsearch import android.os.Bundle import eu.kanade.domain.manga.model.Manga import eu.kanade.tachiyomi.source.CatalogueSource +import eu.kanade.tachiyomi.ui.base.presenter.BasePresenter import eu.kanade.tachiyomi.ui.browse.source.SourcesController import eu.kanade.tachiyomi.util.lang.launchIO import exh.smartsearch.SmartSearchEngine -import exh.ui.base.CoroutinePresenter import kotlinx.coroutines.CancellationException import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.asSharedFlow class SmartSearchPresenter(private val source: CatalogueSource, private val config: SourcesController.SmartSearchConfig) : - CoroutinePresenter() { + BasePresenter() { private val _smartSearchFlow = MutableSharedFlow() val smartSearchFlow = _smartSearchFlow.asSharedFlow()