Merge Voyager screens (#8656)
* Merge Voyager screens
* cleanups
(cherry picked from commit 3d66eaea83)
# Conflicts:
# app/src/main/java/eu/kanade/presentation/components/MangaBottomActionMenu.kt
# app/src/main/java/eu/kanade/presentation/more/settings/screen/AboutScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/base/changehandler/OneWayFadeChangeHandler.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/base/controller/ConductorExtensions.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/MigrateSearchScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/migration/search/SourceSearchScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesFilterController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/SourcesTab.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/browse/source/browse/BrowseSourceScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/category/CategoryScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibrarySettingsSheet.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryTab.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/main/WhatsNewDialogController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaScreen.kt
# app/src/main/java/eu/kanade/tachiyomi/ui/more/MoreTab.kt
# app/src/main/res/layout/main_activity.xml
This commit is contained in:
@@ -1,16 +0,0 @@
|
||||
package exh.ui.batchadd
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import cafe.adriel.voyager.navigator.Navigator
|
||||
import eu.kanade.tachiyomi.ui.base.controller.BasicFullComposeController
|
||||
|
||||
/**
|
||||
* Batch add screen
|
||||
*/
|
||||
class BatchAddController : BasicFullComposeController() {
|
||||
|
||||
@Composable
|
||||
override fun ComposeContent() {
|
||||
Navigator(screen = BatchAddScreen())
|
||||
}
|
||||
}
|
||||
@@ -34,7 +34,6 @@ import eu.kanade.presentation.components.AppBar
|
||||
import eu.kanade.presentation.components.Button
|
||||
import eu.kanade.presentation.components.LazyColumn
|
||||
import eu.kanade.presentation.components.Scaffold
|
||||
import eu.kanade.presentation.util.LocalRouter
|
||||
import eu.kanade.presentation.util.padding
|
||||
import eu.kanade.presentation.util.plus
|
||||
import eu.kanade.tachiyomi.R
|
||||
@@ -46,19 +45,13 @@ class BatchAddScreen : Screen {
|
||||
val screenModel = rememberScreenModel { BatchAddScreenModel() }
|
||||
val state by screenModel.state.collectAsState()
|
||||
val navigator = LocalNavigator.currentOrThrow
|
||||
val router = LocalRouter.currentOrThrow
|
||||
val context = LocalContext.current
|
||||
|
||||
Scaffold(
|
||||
topBar = { scrollBehavior ->
|
||||
AppBar(
|
||||
title = stringResource(R.string.batch_add),
|
||||
navigateUp = {
|
||||
when {
|
||||
navigator.canPop -> navigator.pop()
|
||||
else -> router.popCurrentController()
|
||||
}
|
||||
},
|
||||
navigateUp = navigator::pop,
|
||||
scrollBehavior = scrollBehavior,
|
||||
)
|
||||
},
|
||||
|
||||
@@ -26,8 +26,8 @@ import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.source.online.UrlImportableSource
|
||||
import eu.kanade.tachiyomi.ui.base.activity.BaseActivity
|
||||
import eu.kanade.tachiyomi.ui.main.MainActivity
|
||||
import eu.kanade.tachiyomi.ui.manga.MangaController
|
||||
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
||||
import eu.kanade.tachiyomi.util.Constants
|
||||
import eu.kanade.tachiyomi.util.view.setComposeContent
|
||||
import exh.GalleryAddEvent
|
||||
import exh.GalleryAdder
|
||||
@@ -113,7 +113,7 @@ class InterceptActivity : BaseActivity() {
|
||||
Intent(this, MainActivity::class.java)
|
||||
.setAction(MainActivity.SHORTCUT_MANGA)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
|
||||
.putExtra(MangaController.MANGA_EXTRA, it.mangaId)
|
||||
.putExtra(Constants.MANGA_EXTRA, it.mangaId)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
package exh.ui.metadata
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.core.os.bundleOf
|
||||
import cafe.adriel.voyager.navigator.Navigator
|
||||
import eu.kanade.domain.manga.model.Manga
|
||||
import eu.kanade.tachiyomi.ui.base.controller.BasicFullComposeController
|
||||
|
||||
class MetadataViewController : BasicFullComposeController {
|
||||
constructor(manga: Manga) : super(
|
||||
bundleOf(
|
||||
MANGA_EXTRA to manga.id,
|
||||
SOURCE_EXTRA to manga.source,
|
||||
),
|
||||
)
|
||||
|
||||
@Suppress("unused")
|
||||
constructor(bundle: Bundle) : super(bundle)
|
||||
|
||||
@Composable
|
||||
override fun ComposeContent() {
|
||||
Navigator(screen = MetadataViewScreen(args.getLong(MANGA_EXTRA), args.getLong(SOURCE_EXTRA)))
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val MANGA_EXTRA = "manga"
|
||||
const val SOURCE_EXTRA = "source"
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
package exh.ui.smartsearch
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.core.os.bundleOf
|
||||
import cafe.adriel.voyager.navigator.Navigator
|
||||
import eu.kanade.tachiyomi.ui.base.controller.BasicFullComposeController
|
||||
import eu.kanade.tachiyomi.ui.browse.source.SourcesScreen
|
||||
import eu.kanade.tachiyomi.util.system.getSerializableCompat
|
||||
|
||||
class SmartSearchController(bundle: Bundle) : BasicFullComposeController() {
|
||||
private val sourceId = bundle.getLong(ARG_SOURCE_ID, -1)
|
||||
private val smartSearchConfig = bundle.getSerializableCompat<SourcesScreen.SmartSearchConfig>(ARG_SMART_SEARCH_CONFIG)!!
|
||||
|
||||
constructor(sourceId: Long, smartSearchConfig: SourcesScreen.SmartSearchConfig) : this(
|
||||
bundleOf(
|
||||
ARG_SOURCE_ID to sourceId,
|
||||
ARG_SMART_SEARCH_CONFIG to smartSearchConfig,
|
||||
),
|
||||
)
|
||||
|
||||
@Composable
|
||||
override fun ComposeContent() {
|
||||
Navigator(screen = SmartSearchScreen(sourceId, smartSearchConfig))
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val ARG_SOURCE_ID = "SOURCE_ID"
|
||||
private const val ARG_SMART_SEARCH_CONFIG = "SMART_SEARCH_CONFIG"
|
||||
}
|
||||
}
|
||||
@@ -19,15 +19,14 @@ import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import cafe.adriel.voyager.core.model.rememberScreenModel
|
||||
import cafe.adriel.voyager.core.screen.Screen
|
||||
import cafe.adriel.voyager.navigator.LocalNavigator
|
||||
import cafe.adriel.voyager.navigator.currentOrThrow
|
||||
import eu.kanade.presentation.components.AppBar
|
||||
import eu.kanade.presentation.components.Scaffold
|
||||
import eu.kanade.presentation.util.LocalRouter
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction
|
||||
import eu.kanade.tachiyomi.ui.browse.source.SourcesScreen
|
||||
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceController
|
||||
import eu.kanade.tachiyomi.ui.manga.MangaController
|
||||
import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourceScreen
|
||||
import eu.kanade.tachiyomi.ui.manga.MangaScreen
|
||||
import eu.kanade.tachiyomi.util.system.toast
|
||||
|
||||
class SmartSearchScreen(private val sourceId: Long, private val smartSearchConfig: SourcesScreen.SmartSearchConfig) : Screen {
|
||||
@@ -36,27 +35,27 @@ class SmartSearchScreen(private val sourceId: Long, private val smartSearchConfi
|
||||
override fun Content() {
|
||||
val screenModel = rememberScreenModel { SmartSearchScreenModel(sourceId, smartSearchConfig) }
|
||||
|
||||
val router = LocalRouter.currentOrThrow
|
||||
val navigator = LocalNavigator.currentOrThrow
|
||||
val context = LocalContext.current
|
||||
val state by screenModel.state.collectAsState()
|
||||
LaunchedEffect(state) {
|
||||
val results = state
|
||||
if (results != null) {
|
||||
if (results is SmartSearchScreenModel.SearchResults.Found) {
|
||||
val transaction = MangaController(results.manga.id, true, smartSearchConfig).withFadeTransaction()
|
||||
router.replaceTopController(transaction)
|
||||
navigator.replace(MangaScreen(results.manga.id, true, smartSearchConfig))
|
||||
} else {
|
||||
if (results is SmartSearchScreenModel.SearchResults.NotFound) {
|
||||
context.toast(R.string.could_not_find_entry)
|
||||
} else {
|
||||
context.toast(R.string.automatic_search_error)
|
||||
}
|
||||
val transaction = BrowseSourceController(
|
||||
screenModel.source,
|
||||
smartSearchConfig.origTitle,
|
||||
smartSearchConfig,
|
||||
).withFadeTransaction()
|
||||
router.replaceTopController(transaction)
|
||||
navigator.push(
|
||||
BrowseSourceScreen(
|
||||
sourceId = screenModel.source.id,
|
||||
query = smartSearchConfig.origTitle,
|
||||
smartSearchConfig = smartSearchConfig,
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -65,7 +64,7 @@ class SmartSearchScreen(private val sourceId: Long, private val smartSearchConfi
|
||||
topBar = { scrollBehavior ->
|
||||
AppBar(
|
||||
title = screenModel.source.name,
|
||||
navigateUp = router::popCurrentController,
|
||||
navigateUp = navigator::pop,
|
||||
scrollBehavior = scrollBehavior,
|
||||
)
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user