Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions android/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ android {
applicationId = "com.xiaoyv.bangumi.multiplatform"
minSdk = libs.versions.android.minSdk.get().toInt()
targetSdk = libs.versions.android.targetSdk.get().toInt()
versionCode = 1
versionName = "1.0"
versionCode = 2
versionName = "2.0.1"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunnerArguments["clearPackageData"] = "false"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,12 @@ import androidx.compose.material3.LocalTextStyle
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveComponentOverrideApi
import androidx.compose.material3.adaptive.navigationsuite.LocalNavigationSuiteScaffoldOverride
import androidx.compose.material3.adaptive.navigationsuite.NavigationItemIcon
import androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteScaffold
import androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteScaffoldOverride
import androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteScaffoldOverrideScope
import androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteScope
import androidx.compose.material3.adaptive.navigationsuite.rememberStateOfItems
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
Expand All @@ -24,7 +27,7 @@ import com.kyant.backdrop.backdrops.layerBackdrop
import com.kyant.backdrop.backdrops.rememberLayerBackdrop
import com.kyant.backdrop.catalog.components.LiquidBottomTab
import com.kyant.backdrop.catalog.components.LiquidBottomTabs
import com.xiaoyv.bangumi.features.main.DefaultNavigationSuiteScaffoldOverride.NavigationSuiteScaffold
import com.xiaoyv.bangumi.shared.core.types.settings.SettingBottomBarAppearance

private val NoWindowInsets = WindowInsets(0, 0, 0, 0)

Expand Down Expand Up @@ -81,6 +84,30 @@ object DefaultNavigationSuiteScaffoldOverride : NavigationSuiteScaffoldOverride
}
}

@OptIn(ExperimentalMaterial3AdaptiveComponentOverrideApi::class)
@Composable
fun BgmNavigationSuiteScaffold(
@SettingBottomBarAppearance appearance: Int,
navigationSuiteItems: NavigationSuiteScope.() -> Unit,
modifier: Modifier = Modifier,
content: @Composable () -> Unit = {},
) {
val scaffoldOverride = when (appearance) {
SettingBottomBarAppearance.LIQUID_GLASS -> DefaultNavigationSuiteScaffoldOverride
else -> androidx.compose.material3.adaptive.navigationsuite.DefaultNavigationSuiteScaffoldOverride
}

CompositionLocalProvider(
LocalNavigationSuiteScaffoldOverride provides scaffoldOverride,
) {
NavigationSuiteScaffold(
navigationSuiteItems = navigationSuiteItems,
modifier = modifier,
content = content,
)
}
}

@Composable
internal fun ProvideContentColorTextStyle(
contentColor: Color,
Expand All @@ -93,4 +120,4 @@ internal fun ProvideContentColorTextStyle(
LocalTextStyle provides mergedStyle,
content = content,
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.NavigationBarItemDefaults
import androidx.compose.material3.Text
import androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteScaffold
import androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
Expand All @@ -26,6 +25,7 @@ import com.xiaoyv.bangumi.features.main.business.MainState
import com.xiaoyv.bangumi.features.main.business.MainViewModel
import com.xiaoyv.bangumi.shared.data.manager.shared.LocalHideNavIcon
import com.xiaoyv.bangumi.shared.data.manager.shared.LocalSharedState
import com.xiaoyv.bangumi.shared.data.manager.shared.currentSettings
import com.xiaoyv.bangumi.shared.ui.component.navigation.PagerNavHost
import com.xiaoyv.bangumi.shared.ui.component.navigation.Screen
import com.xiaoyv.bangumi.shared.ui.component.navigation.current
Expand Down Expand Up @@ -66,6 +66,7 @@ fun MainScreen(
onUiEvent: (MainEvent.UI) -> Unit,
onActionEvent: (MainEvent.Action) -> Unit,
) {
val settings = currentSettings()
val bottomTabs = state.rememberBottomTabs()
val startDestination = remember(bottomTabs, state.defaultSelected) {
bottomTabs.getOrNull(state.defaultSelected) ?: bottomTabs.first()
Expand All @@ -79,7 +80,8 @@ fun MainScreen(
),
)

NavigationSuiteScaffold(
BgmNavigationSuiteScaffold(
appearance = settings.homeTab.appearance,
navigationSuiteItems = {
bottomTabs.forEach { item ->
val selected = backStack.current == item.first
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,16 @@ import com.xiaoyv.bangumi.core_resource.resources.settings_bar_2
import com.xiaoyv.bangumi.core_resource.resources.settings_bar_3
import com.xiaoyv.bangumi.core_resource.resources.settings_bar_4
import com.xiaoyv.bangumi.core_resource.resources.settings_bar_5
import com.xiaoyv.bangumi.core_resource.resources.settings_bar_appearance
import com.xiaoyv.bangumi.core_resource.resources.settings_bar_boot
import com.xiaoyv.bangumi.core_resource.resources.settings_bar_boot_default
import com.xiaoyv.bangumi.core_resource.resources.settings_bar_tab
import com.xiaoyv.bangumi.core_resource.resources.settings_appearance
import com.xiaoyv.bangumi.features.settings.bar.business.SettingsBarEvent
import com.xiaoyv.bangumi.features.settings.bar.business.SettingsBarState
import com.xiaoyv.bangumi.features.settings.bar.business.SettingsBarViewModel
import com.xiaoyv.bangumi.shared.core.mvi.BaseState
import com.xiaoyv.bangumi.shared.core.types.settings.SettingBottomBarAppearance
import com.xiaoyv.bangumi.shared.data.manager.shared.currentSettings
import com.xiaoyv.bangumi.shared.ui.component.bar.BgmLargeTopAppBar
import com.xiaoyv.bangumi.shared.ui.component.dialog.alert.AlertOptionDialog
Expand All @@ -39,6 +42,7 @@ import com.xiaoyv.bangumi.shared.ui.component.navigation.Screen
import com.xiaoyv.bangumi.shared.ui.component.settings.SettingContainer
import com.xiaoyv.bangumi.shared.ui.component.settings.SettingItem
import com.xiaoyv.bangumi.shared.ui.component.settings.SettingItemTrailing
import com.xiaoyv.bangumi.shared.ui.component.settings.SettingOptionItem
import com.xiaoyv.bangumi.shared.ui.composition.TabTokens
import com.xiaoyv.bangumi.shared.ui.kts.collectBaseSideEffect
import kotlinx.collections.immutable.persistentListOf
Expand Down Expand Up @@ -112,6 +116,16 @@ private fun SettingsBarScreenContent(
val settings = currentSettings()

Column(modifier = Modifier.padding(vertical = 24.dp)) {
SettingContainer(label = { Text(text = stringResource(Res.string.settings_appearance)) }) {
SettingOptionItem(
title = stringResource(Res.string.settings_bar_appearance),
value = stringResource(SettingBottomBarAppearance.string(settings.homeTab.appearance)),
items = TabTokens.settingBottomBarAppearanceItems,
onClick = {
onActionEvent(SettingsBarEvent.Action.OnUpdate(settings.homeTab.copy(appearance = it)))
}
)
}
SettingContainer(label = { Text(text = stringResource(Res.string.settings_bar_boot)) }) {
val chooseDefaultTabDialogState = rememberAlertDialogState()
AlertOptionDialog(
Expand Down Expand Up @@ -181,4 +195,3 @@ private fun SettingsBarScreenContent(
}
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ import com.xiaoyv.bangumi.shared.ui.component.layout.state.StateLayout
import com.xiaoyv.bangumi.shared.ui.component.navigation.Screen
import com.xiaoyv.bangumi.shared.ui.component.settings.SettingContainer
import com.xiaoyv.bangumi.shared.ui.component.settings.SettingItem
import com.xiaoyv.bangumi.features.settings.main.component.BangumiStatusTopBarAction
import com.xiaoyv.bangumi.shared.ui.kts.collectBaseSideEffect
import com.xiaoyv.bangumi.shared.ui.theme.BgmIcons
import org.jetbrains.compose.resources.stringResource
Expand Down Expand Up @@ -121,6 +122,9 @@ private fun SettingsMainScreen(
BgmLargeTopAppBar(
title = stringResource(Res.string.settings_title),
scrollBehavior = scrollBehavior,
actions = {
BangumiStatusTopBarAction()
},
onNavigationClick = { onUiEvent(SettingsMainEvent.UI.OnNavUp) }
)
}
Expand Down Expand Up @@ -278,4 +282,3 @@ private fun SettingsMainScreenContent(
}
}
}

Loading
Loading