mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Remove top app bar scroll behavior
This lets us make it more consistent with the Compose screens for now. Maybe it'll return in the future. This also includes making the AboutController a full Compose controller with a new abstracted TopAppBar composable.
This commit is contained in:
		@@ -7,15 +7,16 @@ import androidx.compose.runtime.Composable
 | 
			
		||||
import androidx.compose.runtime.LaunchedEffect
 | 
			
		||||
import androidx.compose.ui.Modifier
 | 
			
		||||
import androidx.compose.ui.platform.LocalContext
 | 
			
		||||
import androidx.compose.ui.res.stringResource
 | 
			
		||||
import eu.kanade.presentation.category.components.CategoryContent
 | 
			
		||||
import eu.kanade.presentation.category.components.CategoryCreateDialog
 | 
			
		||||
import eu.kanade.presentation.category.components.CategoryDeleteDialog
 | 
			
		||||
import eu.kanade.presentation.category.components.CategoryFloatingActionButton
 | 
			
		||||
import eu.kanade.presentation.category.components.CategoryRenameDialog
 | 
			
		||||
import eu.kanade.presentation.category.components.CategoryTopAppBar
 | 
			
		||||
import eu.kanade.presentation.components.EmptyScreen
 | 
			
		||||
import eu.kanade.presentation.components.LoadingScreen
 | 
			
		||||
import eu.kanade.presentation.components.Scaffold
 | 
			
		||||
import eu.kanade.presentation.components.TopAppBar
 | 
			
		||||
import eu.kanade.presentation.util.horizontalPadding
 | 
			
		||||
import eu.kanade.presentation.util.plus
 | 
			
		||||
import eu.kanade.presentation.util.topPaddingValues
 | 
			
		||||
@@ -34,7 +35,8 @@ fun CategoryScreen(
 | 
			
		||||
    Scaffold(
 | 
			
		||||
        modifier = Modifier.statusBarsPadding(),
 | 
			
		||||
        topBar = {
 | 
			
		||||
            CategoryTopAppBar(
 | 
			
		||||
            TopAppBar(
 | 
			
		||||
                title = stringResource(R.string.action_edit_categories),
 | 
			
		||||
                navigateUp = navigateUp,
 | 
			
		||||
            )
 | 
			
		||||
        },
 | 
			
		||||
 
 | 
			
		||||
@@ -1,30 +0,0 @@
 | 
			
		||||
package eu.kanade.presentation.category.components
 | 
			
		||||
 | 
			
		||||
import androidx.compose.material.icons.Icons
 | 
			
		||||
import androidx.compose.material.icons.filled.ArrowBack
 | 
			
		||||
import androidx.compose.material3.Icon
 | 
			
		||||
import androidx.compose.material3.IconButton
 | 
			
		||||
import androidx.compose.material3.SmallTopAppBar
 | 
			
		||||
import androidx.compose.material3.Text
 | 
			
		||||
import androidx.compose.runtime.Composable
 | 
			
		||||
import androidx.compose.ui.res.stringResource
 | 
			
		||||
import eu.kanade.tachiyomi.R
 | 
			
		||||
 | 
			
		||||
@Composable
 | 
			
		||||
fun CategoryTopAppBar(
 | 
			
		||||
    navigateUp: () -> Unit,
 | 
			
		||||
) {
 | 
			
		||||
    SmallTopAppBar(
 | 
			
		||||
        navigationIcon = {
 | 
			
		||||
            IconButton(onClick = navigateUp) {
 | 
			
		||||
                Icon(
 | 
			
		||||
                    imageVector = Icons.Default.ArrowBack,
 | 
			
		||||
                    contentDescription = stringResource(R.string.abc_action_bar_up_description),
 | 
			
		||||
                )
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        title = {
 | 
			
		||||
            Text(text = stringResource(R.string.action_edit_categories))
 | 
			
		||||
        },
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
@@ -1,12 +1,15 @@
 | 
			
		||||
package eu.kanade.presentation.components
 | 
			
		||||
 | 
			
		||||
import androidx.compose.foundation.layout.Column
 | 
			
		||||
import androidx.compose.foundation.layout.RowScope
 | 
			
		||||
import androidx.compose.material.icons.Icons
 | 
			
		||||
import androidx.compose.material.icons.filled.ArrowBack
 | 
			
		||||
import androidx.compose.material.icons.filled.MoreVert
 | 
			
		||||
import androidx.compose.material3.DropdownMenuItem
 | 
			
		||||
import androidx.compose.material3.Icon
 | 
			
		||||
import androidx.compose.material3.IconButton
 | 
			
		||||
import androidx.compose.material3.MaterialTheme
 | 
			
		||||
import androidx.compose.material3.SmallTopAppBar
 | 
			
		||||
import androidx.compose.material3.Text
 | 
			
		||||
import androidx.compose.runtime.Composable
 | 
			
		||||
import androidx.compose.runtime.getValue
 | 
			
		||||
@@ -19,6 +22,30 @@ import androidx.compose.ui.text.font.FontWeight
 | 
			
		||||
import androidx.compose.ui.text.style.TextOverflow
 | 
			
		||||
import eu.kanade.tachiyomi.R
 | 
			
		||||
 | 
			
		||||
@Composable
 | 
			
		||||
fun TopAppBar(
 | 
			
		||||
    title: String?,
 | 
			
		||||
    subtitle: String? = null,
 | 
			
		||||
    navigateUp: () -> Unit,
 | 
			
		||||
    navigationIcon: ImageVector = Icons.Default.ArrowBack,
 | 
			
		||||
    actions: @Composable RowScope.() -> Unit = {},
 | 
			
		||||
) {
 | 
			
		||||
    SmallTopAppBar(
 | 
			
		||||
        navigationIcon = {
 | 
			
		||||
            IconButton(onClick = navigateUp) {
 | 
			
		||||
                Icon(
 | 
			
		||||
                    imageVector = navigationIcon,
 | 
			
		||||
                    contentDescription = stringResource(R.string.abc_action_bar_up_description),
 | 
			
		||||
                )
 | 
			
		||||
            }
 | 
			
		||||
        },
 | 
			
		||||
        title = {
 | 
			
		||||
            AppBarTitle(title, subtitle)
 | 
			
		||||
        },
 | 
			
		||||
        actions = actions,
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@Composable
 | 
			
		||||
fun AppBarTitle(
 | 
			
		||||
    title: String?,
 | 
			
		||||
 
 | 
			
		||||
@@ -6,21 +6,23 @@ import androidx.compose.foundation.layout.WindowInsets
 | 
			
		||||
import androidx.compose.foundation.layout.asPaddingValues
 | 
			
		||||
import androidx.compose.foundation.layout.fillMaxWidth
 | 
			
		||||
import androidx.compose.foundation.layout.navigationBars
 | 
			
		||||
import androidx.compose.foundation.layout.statusBarsPadding
 | 
			
		||||
import androidx.compose.material.icons.Icons
 | 
			
		||||
import androidx.compose.material.icons.outlined.Public
 | 
			
		||||
import androidx.compose.runtime.Composable
 | 
			
		||||
import androidx.compose.ui.Modifier
 | 
			
		||||
import androidx.compose.ui.graphics.vector.rememberVectorPainter
 | 
			
		||||
import androidx.compose.ui.input.nestedscroll.NestedScrollConnection
 | 
			
		||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
 | 
			
		||||
import androidx.compose.ui.platform.LocalContext
 | 
			
		||||
import androidx.compose.ui.platform.LocalUriHandler
 | 
			
		||||
import androidx.compose.ui.res.painterResource
 | 
			
		||||
import androidx.compose.ui.res.stringResource
 | 
			
		||||
import eu.kanade.presentation.components.LinkIcon
 | 
			
		||||
import eu.kanade.presentation.components.PreferenceRow
 | 
			
		||||
import eu.kanade.presentation.components.Scaffold
 | 
			
		||||
import eu.kanade.presentation.components.ScrollbarLazyColumn
 | 
			
		||||
import eu.kanade.presentation.components.TopAppBar
 | 
			
		||||
import eu.kanade.presentation.more.LogoHeader
 | 
			
		||||
import eu.kanade.presentation.util.plus
 | 
			
		||||
import eu.kanade.tachiyomi.BuildConfig
 | 
			
		||||
import eu.kanade.tachiyomi.R
 | 
			
		||||
import eu.kanade.tachiyomi.data.updater.RELEASE_URL
 | 
			
		||||
@@ -29,7 +31,7 @@ import eu.kanade.tachiyomi.util.system.copyToClipboard
 | 
			
		||||
 | 
			
		||||
@Composable
 | 
			
		||||
fun AboutScreen(
 | 
			
		||||
    nestedScrollInterop: NestedScrollConnection,
 | 
			
		||||
    navigateUp: () -> Unit,
 | 
			
		||||
    checkVersion: () -> Unit,
 | 
			
		||||
    getFormattedBuildTime: () -> String,
 | 
			
		||||
    onClickLicenses: () -> Unit,
 | 
			
		||||
@@ -37,108 +39,117 @@ fun AboutScreen(
 | 
			
		||||
    val context = LocalContext.current
 | 
			
		||||
    val uriHandler = LocalUriHandler.current
 | 
			
		||||
 | 
			
		||||
    ScrollbarLazyColumn(
 | 
			
		||||
        modifier = Modifier.nestedScroll(nestedScrollInterop),
 | 
			
		||||
        contentPadding = WindowInsets.navigationBars.asPaddingValues(),
 | 
			
		||||
    ) {
 | 
			
		||||
        item {
 | 
			
		||||
            LogoHeader()
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        item {
 | 
			
		||||
            PreferenceRow(
 | 
			
		||||
                title = stringResource(R.string.version),
 | 
			
		||||
                subtitle = when {
 | 
			
		||||
                    BuildConfig.DEBUG -> {
 | 
			
		||||
                        "Debug ${BuildConfig.COMMIT_SHA} (${getFormattedBuildTime()})"
 | 
			
		||||
                    }
 | 
			
		||||
                    BuildConfig.PREVIEW -> {
 | 
			
		||||
                        "Preview r${BuildConfig.COMMIT_COUNT} (${BuildConfig.COMMIT_SHA}, ${getFormattedBuildTime()})"
 | 
			
		||||
                    }
 | 
			
		||||
                    else -> {
 | 
			
		||||
                        "Stable ${BuildConfig.VERSION_NAME} (${getFormattedBuildTime()})"
 | 
			
		||||
                    }
 | 
			
		||||
                },
 | 
			
		||||
                onClick = {
 | 
			
		||||
                    val deviceInfo = CrashLogUtil(context).getDebugInfo()
 | 
			
		||||
                    context.copyToClipboard("Debug information", deviceInfo)
 | 
			
		||||
                },
 | 
			
		||||
    Scaffold(
 | 
			
		||||
        modifier = Modifier.statusBarsPadding(),
 | 
			
		||||
        topBar = {
 | 
			
		||||
            TopAppBar(
 | 
			
		||||
                title = stringResource(R.string.pref_category_about),
 | 
			
		||||
                navigateUp = navigateUp,
 | 
			
		||||
            )
 | 
			
		||||
        }
 | 
			
		||||
        },
 | 
			
		||||
    ) { paddingValues ->
 | 
			
		||||
        ScrollbarLazyColumn(
 | 
			
		||||
            contentPadding = paddingValues + WindowInsets.navigationBars.asPaddingValues(),
 | 
			
		||||
        ) {
 | 
			
		||||
            item {
 | 
			
		||||
                LogoHeader()
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        if (BuildConfig.INCLUDE_UPDATER) {
 | 
			
		||||
            item {
 | 
			
		||||
                PreferenceRow(
 | 
			
		||||
                    title = stringResource(R.string.check_for_updates),
 | 
			
		||||
                    onClick = checkVersion,
 | 
			
		||||
                    title = stringResource(R.string.version),
 | 
			
		||||
                    subtitle = when {
 | 
			
		||||
                        BuildConfig.DEBUG -> {
 | 
			
		||||
                            "Debug ${BuildConfig.COMMIT_SHA} (${getFormattedBuildTime()})"
 | 
			
		||||
                        }
 | 
			
		||||
                        BuildConfig.PREVIEW -> {
 | 
			
		||||
                            "Preview r${BuildConfig.COMMIT_COUNT} (${BuildConfig.COMMIT_SHA}, ${getFormattedBuildTime()})"
 | 
			
		||||
                        }
 | 
			
		||||
                        else -> {
 | 
			
		||||
                            "Stable ${BuildConfig.VERSION_NAME} (${getFormattedBuildTime()})"
 | 
			
		||||
                        }
 | 
			
		||||
                    },
 | 
			
		||||
                    onClick = {
 | 
			
		||||
                        val deviceInfo = CrashLogUtil(context).getDebugInfo()
 | 
			
		||||
                        context.copyToClipboard("Debug information", deviceInfo)
 | 
			
		||||
                    },
 | 
			
		||||
                )
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        if (!BuildConfig.DEBUG) {
 | 
			
		||||
 | 
			
		||||
            if (BuildConfig.INCLUDE_UPDATER) {
 | 
			
		||||
                item {
 | 
			
		||||
                    PreferenceRow(
 | 
			
		||||
                        title = stringResource(R.string.check_for_updates),
 | 
			
		||||
                        onClick = checkVersion,
 | 
			
		||||
                    )
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            if (!BuildConfig.DEBUG) {
 | 
			
		||||
                item {
 | 
			
		||||
                    PreferenceRow(
 | 
			
		||||
                        title = stringResource(R.string.whats_new),
 | 
			
		||||
                        onClick = { uriHandler.openUri(RELEASE_URL) },
 | 
			
		||||
                    )
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            item {
 | 
			
		||||
                PreferenceRow(
 | 
			
		||||
                    title = stringResource(R.string.whats_new),
 | 
			
		||||
                    onClick = { uriHandler.openUri(RELEASE_URL) },
 | 
			
		||||
                    title = stringResource(R.string.help_translate),
 | 
			
		||||
                    onClick = { uriHandler.openUri("https://tachiyomi.org/help/contribution/#translation") },
 | 
			
		||||
                )
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        item {
 | 
			
		||||
            PreferenceRow(
 | 
			
		||||
                title = stringResource(R.string.help_translate),
 | 
			
		||||
                onClick = { uriHandler.openUri("https://tachiyomi.org/help/contribution/#translation") },
 | 
			
		||||
            )
 | 
			
		||||
        }
 | 
			
		||||
            item {
 | 
			
		||||
                PreferenceRow(
 | 
			
		||||
                    title = stringResource(R.string.licenses),
 | 
			
		||||
                    onClick = onClickLicenses,
 | 
			
		||||
                )
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        item {
 | 
			
		||||
            PreferenceRow(
 | 
			
		||||
                title = stringResource(R.string.licenses),
 | 
			
		||||
                onClick = onClickLicenses,
 | 
			
		||||
            )
 | 
			
		||||
        }
 | 
			
		||||
            item {
 | 
			
		||||
                PreferenceRow(
 | 
			
		||||
                    title = stringResource(R.string.privacy_policy),
 | 
			
		||||
                    onClick = { uriHandler.openUri("https://tachiyomi.org/privacy") },
 | 
			
		||||
                )
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        item {
 | 
			
		||||
            PreferenceRow(
 | 
			
		||||
                title = stringResource(R.string.privacy_policy),
 | 
			
		||||
                onClick = { uriHandler.openUri("https://tachiyomi.org/privacy") },
 | 
			
		||||
            )
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        item {
 | 
			
		||||
            Row(
 | 
			
		||||
                modifier = Modifier.fillMaxWidth(),
 | 
			
		||||
                horizontalArrangement = Arrangement.Center,
 | 
			
		||||
            ) {
 | 
			
		||||
                LinkIcon(
 | 
			
		||||
                    label = stringResource(R.string.website),
 | 
			
		||||
                    painter = rememberVectorPainter(Icons.Outlined.Public),
 | 
			
		||||
                    url = "https://tachiyomi.org",
 | 
			
		||||
                )
 | 
			
		||||
                LinkIcon(
 | 
			
		||||
                    label = "Discord",
 | 
			
		||||
                    painter = painterResource(R.drawable.ic_discord_24dp),
 | 
			
		||||
                    url = "https://discord.gg/tachiyomi",
 | 
			
		||||
                )
 | 
			
		||||
                LinkIcon(
 | 
			
		||||
                    label = "Twitter",
 | 
			
		||||
                    painter = painterResource(R.drawable.ic_twitter_24dp),
 | 
			
		||||
                    url = "https://twitter.com/tachiyomiorg",
 | 
			
		||||
                )
 | 
			
		||||
                LinkIcon(
 | 
			
		||||
                    label = "Facebook",
 | 
			
		||||
                    painter = painterResource(R.drawable.ic_facebook_24dp),
 | 
			
		||||
                    url = "https://facebook.com/tachiyomiorg",
 | 
			
		||||
                )
 | 
			
		||||
                LinkIcon(
 | 
			
		||||
                    label = "Reddit",
 | 
			
		||||
                    painter = painterResource(R.drawable.ic_reddit_24dp),
 | 
			
		||||
                    url = "https://www.reddit.com/r/Tachiyomi",
 | 
			
		||||
                )
 | 
			
		||||
                LinkIcon(
 | 
			
		||||
                    label = "GitHub",
 | 
			
		||||
                    painter = painterResource(R.drawable.ic_github_24dp),
 | 
			
		||||
                    url = "https://github.com/tachiyomiorg",
 | 
			
		||||
                )
 | 
			
		||||
            item {
 | 
			
		||||
                Row(
 | 
			
		||||
                    modifier = Modifier.fillMaxWidth(),
 | 
			
		||||
                    horizontalArrangement = Arrangement.Center,
 | 
			
		||||
                ) {
 | 
			
		||||
                    LinkIcon(
 | 
			
		||||
                        label = stringResource(R.string.website),
 | 
			
		||||
                        painter = rememberVectorPainter(Icons.Outlined.Public),
 | 
			
		||||
                        url = "https://tachiyomi.org",
 | 
			
		||||
                    )
 | 
			
		||||
                    LinkIcon(
 | 
			
		||||
                        label = "Discord",
 | 
			
		||||
                        painter = painterResource(R.drawable.ic_discord_24dp),
 | 
			
		||||
                        url = "https://discord.gg/tachiyomi",
 | 
			
		||||
                    )
 | 
			
		||||
                    LinkIcon(
 | 
			
		||||
                        label = "Twitter",
 | 
			
		||||
                        painter = painterResource(R.drawable.ic_twitter_24dp),
 | 
			
		||||
                        url = "https://twitter.com/tachiyomiorg",
 | 
			
		||||
                    )
 | 
			
		||||
                    LinkIcon(
 | 
			
		||||
                        label = "Facebook",
 | 
			
		||||
                        painter = painterResource(R.drawable.ic_facebook_24dp),
 | 
			
		||||
                        url = "https://facebook.com/tachiyomiorg",
 | 
			
		||||
                    )
 | 
			
		||||
                    LinkIcon(
 | 
			
		||||
                        label = "Reddit",
 | 
			
		||||
                        painter = painterResource(R.drawable.ic_reddit_24dp),
 | 
			
		||||
                        url = "https://www.reddit.com/r/Tachiyomi",
 | 
			
		||||
                    )
 | 
			
		||||
                    LinkIcon(
 | 
			
		||||
                        label = "GitHub",
 | 
			
		||||
                        painter = painterResource(R.drawable.ic_github_24dp),
 | 
			
		||||
                        url = "https://github.com/tachiyomiorg",
 | 
			
		||||
                    )
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,10 +11,7 @@ import androidx.compose.material.icons.Icons
 | 
			
		||||
import androidx.compose.material.icons.filled.ArrowBack
 | 
			
		||||
import androidx.compose.material.icons.filled.ArrowForward
 | 
			
		||||
import androidx.compose.material.icons.filled.Close
 | 
			
		||||
import androidx.compose.material3.Icon
 | 
			
		||||
import androidx.compose.material3.IconButton
 | 
			
		||||
import androidx.compose.material3.LinearProgressIndicator
 | 
			
		||||
import androidx.compose.material3.SmallTopAppBar
 | 
			
		||||
import androidx.compose.runtime.Composable
 | 
			
		||||
import androidx.compose.runtime.remember
 | 
			
		||||
import androidx.compose.ui.Modifier
 | 
			
		||||
@@ -28,7 +25,7 @@ import com.google.accompanist.web.rememberWebViewNavigator
 | 
			
		||||
import com.google.accompanist.web.rememberWebViewState
 | 
			
		||||
import eu.kanade.presentation.components.AppBar
 | 
			
		||||
import eu.kanade.presentation.components.AppBarActions
 | 
			
		||||
import eu.kanade.presentation.components.AppBarTitle
 | 
			
		||||
import eu.kanade.presentation.components.TopAppBar
 | 
			
		||||
import eu.kanade.tachiyomi.BuildConfig
 | 
			
		||||
import eu.kanade.tachiyomi.R
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.setDefaultSettings
 | 
			
		||||
@@ -48,21 +45,11 @@ fun WebViewScreen(
 | 
			
		||||
    val navigator = rememberWebViewNavigator()
 | 
			
		||||
 | 
			
		||||
    Column {
 | 
			
		||||
        SmallTopAppBar(
 | 
			
		||||
            title = {
 | 
			
		||||
                AppBarTitle(
 | 
			
		||||
                    title = state.pageTitle ?: initialTitle,
 | 
			
		||||
                    subtitle = state.content.getCurrentUrl(),
 | 
			
		||||
                )
 | 
			
		||||
            },
 | 
			
		||||
            navigationIcon = {
 | 
			
		||||
                IconButton(onClick = onUp) {
 | 
			
		||||
                    Icon(
 | 
			
		||||
                        imageVector = Icons.Default.Close,
 | 
			
		||||
                        contentDescription = stringResource(R.string.action_close),
 | 
			
		||||
                    )
 | 
			
		||||
                }
 | 
			
		||||
            },
 | 
			
		||||
        TopAppBar(
 | 
			
		||||
            title = state.pageTitle ?: initialTitle,
 | 
			
		||||
            subtitle = state.content.getCurrentUrl(),
 | 
			
		||||
            navigateUp = onUp,
 | 
			
		||||
            navigationIcon = Icons.Default.Close,
 | 
			
		||||
            actions = {
 | 
			
		||||
                AppBarActions(
 | 
			
		||||
                    listOf(
 | 
			
		||||
 
 | 
			
		||||
@@ -73,6 +73,27 @@ abstract class BasicComposeController :
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Basic Compose controller without a presenter.
 | 
			
		||||
 */
 | 
			
		||||
abstract class BasicFullComposeController :
 | 
			
		||||
    BaseController<ComposeControllerBinding>(),
 | 
			
		||||
    FullComposeContentController {
 | 
			
		||||
 | 
			
		||||
    override fun createBinding(inflater: LayoutInflater) =
 | 
			
		||||
        ComposeControllerBinding.inflate(inflater)
 | 
			
		||||
 | 
			
		||||
    override fun onViewCreated(view: View) {
 | 
			
		||||
        super.onViewCreated(view)
 | 
			
		||||
 | 
			
		||||
        binding.root.apply {
 | 
			
		||||
            setComposeContent {
 | 
			
		||||
                ComposeContent()
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
abstract class SearchableComposeController<P : BasePresenter<*>>(bundle: Bundle? = null) :
 | 
			
		||||
    SearchableNucleusController<ComposeControllerBinding, P>(bundle),
 | 
			
		||||
    ComposeContentController {
 | 
			
		||||
 
 | 
			
		||||
@@ -43,7 +43,7 @@ import eu.kanade.tachiyomi.extension.api.ExtensionGithubApi
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.activity.BaseActivity
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.controller.FabController
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.controller.FullComposeController
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.controller.FullComposeContentController
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.controller.NoAppBarElevationController
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.controller.RootController
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.controller.TabbedController
 | 
			
		||||
@@ -606,7 +606,7 @@ class MainActivity : BaseActivity() {
 | 
			
		||||
            binding.fabLayout.rootFab.hide()
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        val isFullComposeController = internalTo is FullComposeController<*>
 | 
			
		||||
        val isFullComposeController = internalTo is FullComposeContentController
 | 
			
		||||
        binding.appbar.isVisible = !isFullComposeController
 | 
			
		||||
        binding.controllerContainer.enableScrollingBehavior(!isFullComposeController)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,13 @@
 | 
			
		||||
package eu.kanade.tachiyomi.ui.more
 | 
			
		||||
 | 
			
		||||
import androidx.compose.runtime.Composable
 | 
			
		||||
import androidx.compose.ui.input.nestedscroll.NestedScrollConnection
 | 
			
		||||
import eu.kanade.presentation.more.about.AboutScreen
 | 
			
		||||
import eu.kanade.tachiyomi.BuildConfig
 | 
			
		||||
import eu.kanade.tachiyomi.R
 | 
			
		||||
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
 | 
			
		||||
import eu.kanade.tachiyomi.data.updater.AppUpdateChecker
 | 
			
		||||
import eu.kanade.tachiyomi.data.updater.AppUpdateResult
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.controller.BasicComposeController
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.controller.NoAppBarElevationController
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.controller.BasicFullComposeController
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.controller.pushController
 | 
			
		||||
import eu.kanade.tachiyomi.util.lang.launchNow
 | 
			
		||||
import eu.kanade.tachiyomi.util.lang.toDateTimestampString
 | 
			
		||||
@@ -22,17 +20,15 @@ import java.text.SimpleDateFormat
 | 
			
		||||
import java.util.Locale
 | 
			
		||||
import java.util.TimeZone
 | 
			
		||||
 | 
			
		||||
class AboutController : BasicComposeController(), NoAppBarElevationController {
 | 
			
		||||
class AboutController : BasicFullComposeController() {
 | 
			
		||||
 | 
			
		||||
    private val preferences: PreferencesHelper by injectLazy()
 | 
			
		||||
    private val updateChecker by lazy { AppUpdateChecker() }
 | 
			
		||||
 | 
			
		||||
    override fun getTitle() = resources?.getString(R.string.pref_category_about)
 | 
			
		||||
 | 
			
		||||
    @Composable
 | 
			
		||||
    override fun ComposeContent(nestedScrollInterop: NestedScrollConnection) {
 | 
			
		||||
    override fun ComposeContent() {
 | 
			
		||||
        AboutScreen(
 | 
			
		||||
            nestedScrollInterop = nestedScrollInterop,
 | 
			
		||||
            navigateUp = router::popCurrentController,
 | 
			
		||||
            checkVersion = this::checkVersion,
 | 
			
		||||
            getFormattedBuildTime = this::getFormattedBuildTime,
 | 
			
		||||
            onClickLicenses = { router.pushController(LicensesController()) },
 | 
			
		||||
 
 | 
			
		||||
@@ -23,8 +23,7 @@
 | 
			
		||||
            android:id="@+id/toolbar"
 | 
			
		||||
            android:layout_width="match_parent"
 | 
			
		||||
            android:layout_height="?attr/actionBarSize"
 | 
			
		||||
            android:theme="?attr/actionBarTheme"
 | 
			
		||||
            app:layout_scrollFlags="scroll|enterAlways|snap" />
 | 
			
		||||
            android:theme="?attr/actionBarTheme" />
 | 
			
		||||
 | 
			
		||||
        <com.google.android.material.tabs.TabLayout
 | 
			
		||||
            android:id="@+id/tabs"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user