diff --git a/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearFavoritesView.kt b/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearFavoritesView.kt index bdbfb4677ae..71a9a0b7907 100644 --- a/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearFavoritesView.kt +++ b/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearFavoritesView.kt @@ -6,10 +6,10 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.material.Scaffold -import androidx.compose.material.SnackbarHost -import androidx.compose.material.Text -import androidx.compose.material.rememberScaffoldState +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue @@ -21,7 +21,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import io.homeassistant.companion.android.common.R as commonR -import io.homeassistant.companion.android.common.compose.theme.HATheme +import io.homeassistant.companion.android.common.compose.theme.LocalHAColorScheme import io.homeassistant.companion.android.common.data.integration.Entity import io.homeassistant.companion.android.common.data.integration.friendlyName import io.homeassistant.companion.android.settings.wear.SettingsWearViewModel @@ -65,20 +65,20 @@ fun LoadWearFavoritesSettings( } } - val scaffoldState = rememberScaffoldState() + val snackbarHostState = remember { SnackbarHostState() } LaunchedEffect("snackbar") { events.onEach { message -> - scaffoldState.snackbarHostState.currentSnackbarData?.dismiss() // in case of rapid-fire events - scaffoldState.snackbarHostState.showSnackbar(message) + snackbarHostState.currentSnackbarData?.dismiss() // in case of rapid-fire events + snackbarHostState.showSnackbar(message) }.launchIn(this) } Scaffold( modifier = modifier, - scaffoldState = scaffoldState, + containerColor = LocalHAColorScheme.current.colorSurfaceDefault, snackbarHost = { SnackbarHost( - hostState = scaffoldState.snackbarHostState, + hostState = snackbarHostState, modifier = Modifier.windowInsetsPadding(safeBottomWindowInsets()), ) }, @@ -101,25 +101,23 @@ fun LoadWearFavoritesSettings( text = stringResource(commonR.string.wear_set_favorites), fontWeight = FontWeight.Bold, modifier = Modifier.padding(horizontal = 16.dp), + color = LocalHAColorScheme.current.colorTextPrimary, ) } item { - // TODO use new theme for Material3 components https://github.com/home-assistant/android/issues/6300 - HATheme { - EntityPicker( - entities = validEntities, - selectedEntityId = null, - onEntityCleared = { /* Nothing */ }, - onEntitySelectedId = { - settingsWearViewModel.onEntitySelected(true, it) - }, - addButtonText = stringResource(commonR.string.add_favorite), - modifier = Modifier.padding(all = 16.dp), - // In order to have the info about the area/device/zone we need the websocket, it would - // requires SettingsWearRepository to be able to use the WebSocket which is a significant - // work. - ) - } + EntityPicker( + entities = validEntities, + selectedEntityId = null, + onEntityCleared = { /* Nothing */ }, + onEntitySelectedId = { + settingsWearViewModel.onEntitySelected(true, it) + }, + addButtonText = stringResource(commonR.string.add_favorite), + modifier = Modifier.padding(all = 16.dp), + // In order to have the info about the area/device/zone we need the websocket, it would + // requires SettingsWearRepository to be able to use the WebSocket which is a significant + // work. + ) } items(favoriteEntities.size, { favoriteEntities[it] }) { index -> val favoriteEntityID = favoriteEntities[index].replace("[", "").replace("]", "") diff --git a/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearHomeView.kt b/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearHomeView.kt index 512e524945e..6074c90567a 100644 --- a/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearHomeView.kt +++ b/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearHomeView.kt @@ -2,15 +2,13 @@ package io.homeassistant.companion.android.settings.wear.views import android.content.Intent import androidx.compose.foundation.layout.windowInsetsPadding -import androidx.compose.material.IconButton -import androidx.compose.material.TopAppBar +import androidx.compose.material3.IconButton import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.colorResource import androidx.compose.ui.res.stringResource import androidx.core.net.toUri import androidx.navigation.NavType @@ -21,8 +19,10 @@ import androidx.navigation.navArgument import com.mikepenz.iconics.compose.Image import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial import io.homeassistant.companion.android.common.R as commonR +import io.homeassistant.companion.android.common.compose.composable.HATopBar +import io.homeassistant.companion.android.common.compose.theme.HATheme +import io.homeassistant.companion.android.common.compose.theme.LocalHAColorScheme import io.homeassistant.companion.android.settings.wear.SettingsWearViewModel -import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme import io.homeassistant.companion.android.util.safeTopWindowInsets const val WEAR_DOCS_LINK = "https://companion.home-assistant.io/docs/wear-os/" @@ -35,7 +35,7 @@ fun LoadSettingsHomeView( onStartBackClicked: () -> Unit, modifier: Modifier = Modifier, ) { - HomeAssistantAppTheme { + HATheme { val navController = rememberNavController() NavHost( navController = navController, @@ -114,14 +114,14 @@ fun SettingsWearTopAppBar( docsLink: String? = null, ) { val context = LocalContext.current - TopAppBar( + HATopBar( title = title, modifier = modifier.windowInsetsPadding(safeTopWindowInsets()), navigationIcon = { IconButton(onClick = onBackClicked) { Image( asset = CommunityMaterial.Icon.cmd_arrow_left, - colorFilter = ColorFilter.tint(colorResource(commonR.color.colorOnBackground)), + colorFilter = ColorFilter.tint(LocalHAColorScheme.current.colorOnNeutralQuiet), ) } }, @@ -136,12 +136,12 @@ fun SettingsWearTopAppBar( Image( asset = CommunityMaterial.Icon2.cmd_help_circle_outline, contentDescription = stringResource(commonR.string.help), - colorFilter = ColorFilter.tint(colorResource(commonR.color.colorOnBackground)), + colorFilter = ColorFilter.tint(LocalHAColorScheme.current.colorOnNeutralQuiet), ) } } }, - backgroundColor = colorResource(id = commonR.color.colorBackground), - contentColor = colorResource(id = commonR.color.colorOnBackground), + containerColor = LocalHAColorScheme.current.colorSurfaceDefault, + contentColor = LocalHAColorScheme.current.colorTextPrimary, ) } diff --git a/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearLandingView.kt b/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearLandingView.kt index 1717851e5c1..68114040b8a 100644 --- a/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearLandingView.kt +++ b/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearLandingView.kt @@ -8,15 +8,16 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.Button -import androidx.compose.material.CircularProgressIndicator -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Scaffold -import androidx.compose.material.SnackbarHost -import androidx.compose.material.Text -import androidx.compose.material.rememberScaffoldState +import androidx.compose.material3.Button +import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.SnackbarHost +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource @@ -25,6 +26,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial import io.homeassistant.companion.android.common.R as commonR +import io.homeassistant.companion.android.common.compose.theme.LocalHAColorScheme import io.homeassistant.companion.android.settings.views.SettingsRow import io.homeassistant.companion.android.util.safeBottomPaddingValues import io.homeassistant.companion.android.util.safeBottomWindowInsets @@ -46,19 +48,19 @@ fun SettingWearLandingView( events: Flow, modifier: Modifier = Modifier, ) { - val scaffoldState = rememberScaffoldState() + val snackbarHostState = remember { SnackbarHostState() } LaunchedEffect("snackbar") { events.onEach { message -> - scaffoldState.snackbarHostState.showSnackbar(message) + snackbarHostState.showSnackbar(message) }.launchIn(this) } Scaffold( modifier = modifier, - scaffoldState = scaffoldState, + containerColor = LocalHAColorScheme.current.colorSurfaceDefault, snackbarHost = { SnackbarHost( - hostState = scaffoldState.snackbarHostState, + hostState = snackbarHostState, modifier = Modifier.windowInsetsPadding(safeBottomWindowInsets()), ) }, @@ -85,9 +87,9 @@ fun SettingWearLandingView( ) { Text( text = stringResource(id = commonR.string.manage_wear_device, deviceName), - style = MaterialTheme.typography.body2, + style = MaterialTheme.typography.bodyMedium, fontWeight = FontWeight.Bold, - color = MaterialTheme.colors.primary, + color = LocalHAColorScheme.current.colorOnNeutralQuiet, ) } when { diff --git a/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearOnboardingView.kt b/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearOnboardingView.kt index 089dffba3d6..54b17be49a5 100644 --- a/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearOnboardingView.kt +++ b/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearOnboardingView.kt @@ -5,10 +5,10 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding -import androidx.compose.material.Button -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Scaffold -import androidx.compose.material.Text +import androidx.compose.material3.Button +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier @@ -21,6 +21,8 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.compose.collectAsStateWithLifecycle import io.homeassistant.companion.android.common.R as commonR +import io.homeassistant.companion.android.common.compose.theme.HATheme +import io.homeassistant.companion.android.common.compose.theme.LocalHAColorScheme import io.homeassistant.companion.android.settings.wear.SettingsWearViewModel import io.homeassistant.companion.android.util.compose.HomeAssistantAppTheme import io.homeassistant.companion.android.util.safeBottomPaddingValues @@ -32,20 +34,22 @@ internal fun SettingsWearOnboardingView( onFinishInstallOnDevices: () -> Unit, onBackClicked: () -> Unit, ) { - val uiState by settingsWearViewModel.settingsWearOnboardingViewUiState.collectAsStateWithLifecycle( - SettingsWearViewModel.SettingsWearOnboardingViewUiState(), - ) + HATheme { + val uiState by settingsWearViewModel.settingsWearOnboardingViewUiState.collectAsStateWithLifecycle( + SettingsWearViewModel.SettingsWearOnboardingViewUiState(), + ) - if (uiState.installedOnDevices) { - onFinishInstallOnDevices() - } + if (uiState.installedOnDevices) { + onFinishInstallOnDevices() + } - SettingsWearOnboardingViewContent( - infoTextTitleResource = uiState.infoTextResourceId, - shouldDisplayRemoteAppInstallButton = uiState.shouldShowRemoteInstallButton, - onInstallOnWearDeviceClicked = onInstallOnWearDeviceClicked, - onBackClicked = onBackClicked, - ) + SettingsWearOnboardingViewContent( + infoTextTitleResource = uiState.infoTextResourceId, + shouldDisplayRemoteAppInstallButton = uiState.shouldShowRemoteInstallButton, + onInstallOnWearDeviceClicked = onInstallOnWearDeviceClicked, + onBackClicked = onBackClicked, + ) + } } @Composable @@ -56,6 +60,7 @@ internal fun SettingsWearOnboardingViewContent( onBackClicked: () -> Unit, ) { Scaffold( + containerColor = LocalHAColorScheme.current.colorSurfaceDefault, topBar = { SettingsWearTopAppBar( title = { @@ -81,7 +86,7 @@ internal fun SettingsWearOnboardingViewContent( style = TextStyle( fontSize = 20.sp, fontWeight = FontWeight.Light, - color = colorResource(commonR.color.colorHeadline1), + color = LocalHAColorScheme.current.colorTextPrimary, ), modifier = Modifier.padding(start = 15.dp, top = 50.dp, end = 15.dp), ) @@ -91,13 +96,11 @@ internal fun SettingsWearOnboardingViewContent( onClick = onInstallOnWearDeviceClicked, modifier = Modifier .fillMaxWidth() - .padding(bottom = 50.dp), + .padding(bottom = 50.dp, start = 16.dp, end = 16.dp), ) { Text( - text = stringResource(commonR.string.install_app).uppercase(), - letterSpacing = 1.sp, - style = MaterialTheme.typography.body2, - color = colorResource(commonR.color.colorBackground), + text = stringResource(commonR.string.install_app), + style = MaterialTheme.typography.labelLarge, fontWeight = FontWeight.Bold, ) } diff --git a/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearTemplateTile.kt b/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearTemplateTile.kt index 1e80006a450..221be926ee0 100644 --- a/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearTemplateTile.kt +++ b/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearTemplateTile.kt @@ -10,15 +10,17 @@ import android.text.style.UnderlineSpan import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.material.DropdownMenu -import androidx.compose.material.DropdownMenuItem -import androidx.compose.material.OutlinedButton -import androidx.compose.material.Scaffold -import androidx.compose.material.Text -import androidx.compose.material.TextField +import androidx.compose.material3.DropdownMenu +import androidx.compose.material3.DropdownMenuItem +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedButton +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.TextField import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -29,7 +31,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.res.colorResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.SpanStyle import androidx.compose.ui.text.buildAnnotatedString @@ -44,6 +45,7 @@ import androidx.core.text.HtmlCompat.fromHtml import com.mikepenz.iconics.compose.Image import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial import io.homeassistant.companion.android.common.R as commonR +import io.homeassistant.companion.android.common.compose.theme.LocalHAColorScheme import io.homeassistant.companion.android.util.intervalToString import io.homeassistant.companion.android.util.safeBottomPaddingValues @@ -59,6 +61,7 @@ fun SettingsWearTemplateTile( ) { Scaffold( modifier = modifier, + containerColor = LocalHAColorScheme.current.colorSurfaceDefault, topBar = { SettingsWearTopAppBar( title = { Text(stringResource(commonR.string.template_tile)) }, @@ -76,7 +79,7 @@ fun SettingsWearTemplateTile( Row(verticalAlignment = Alignment.CenterVertically) { Image( asset = CommunityMaterial.Icon3.cmd_timer_cog, - colorFilter = ColorFilter.tint(colorResource(commonR.color.colorPrimary)), + colorFilter = ColorFilter.tint(LocalHAColorScheme.current.colorTextPrimary), modifier = Modifier .height(24.dp) .width(24.dp), @@ -84,13 +87,17 @@ fun SettingsWearTemplateTile( Text( stringResource(commonR.string.refresh_interval), modifier = Modifier.padding(start = 4.dp, end = 4.dp), + color = LocalHAColorScheme.current.colorTextPrimary, ) Box { var dropdownExpanded by remember { mutableStateOf(false) } OutlinedButton( onClick = { dropdownExpanded = true }, ) { - Text(intervalToString(LocalContext.current, refreshInterval)) + Text( + intervalToString(LocalContext.current, refreshInterval), + color = LocalHAColorScheme.current.colorTextPrimary, + ) } DropdownMenu( expanded = dropdownExpanded, @@ -101,29 +108,39 @@ fun SettingsWearTemplateTile( 5 * 60 * 60, 10 * 60 * 60, 24 * 60 * 60, ) for (option in options) { - DropdownMenuItem(onClick = { - onRefreshIntervalChanged(option) - dropdownExpanded = false - }) { - Text(intervalToString(LocalContext.current, option)) - } + DropdownMenuItem( + text = { + Text(intervalToString(LocalContext.current, option)) + }, + onClick = { + onRefreshIntervalChanged(option) + dropdownExpanded = false + }, + ) } } } } - Text(stringResource(commonR.string.template_tile_help)) + Text( + stringResource(commonR.string.template_tile_help), + color = LocalHAColorScheme.current.colorTextPrimary, + modifier = Modifier.padding(top = 8.dp), + ) TextField( value = template, onValueChange = onContentChanged, label = { Text(stringResource(commonR.string.template_tile_content)) }, - modifier = Modifier.padding(top = 8.dp), + modifier = Modifier + .fillMaxWidth() + .padding(top = 8.dp), maxLines = 10, ) Text( - parseHtml(renderedTemplate), - fontSize = 12.sp, + text = parseHtml(renderedTemplate), + style = MaterialTheme.typography.bodySmall, + color = LocalHAColorScheme.current.colorTextPrimary, modifier = Modifier.padding(top = 8.dp), ) } diff --git a/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearTemplateTileList.kt b/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearTemplateTileList.kt index 30d7cc627ce..f68e06208d3 100644 --- a/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearTemplateTileList.kt +++ b/app/src/full/kotlin/io/homeassistant/companion/android/settings/wear/views/SettingsWearTemplateTileList.kt @@ -6,9 +6,9 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Scaffold -import androidx.compose.material.Text +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -18,6 +18,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial import io.homeassistant.companion.android.common.R as commonR +import io.homeassistant.companion.android.common.compose.theme.LocalHAColorScheme import io.homeassistant.companion.android.common.data.prefs.impl.entities.TemplateTileConfig import io.homeassistant.companion.android.settings.views.SettingsRow import io.homeassistant.companion.android.util.safeBottomPaddingValues @@ -31,6 +32,7 @@ fun SettingsWearTemplateTileList( ) { Scaffold( modifier = modifier, + containerColor = LocalHAColorScheme.current.colorSurfaceDefault, topBar = { SettingsWearTopAppBar( title = { Text(stringResource(commonR.string.template_tiles)) }, @@ -50,6 +52,7 @@ fun SettingsWearTemplateTileList( text = stringResource(commonR.string.template_tile_no_tiles_yet), modifier = Modifier .padding(all = 16.dp), + color = LocalHAColorScheme.current.colorTextPrimary, ) } else { Row( @@ -60,9 +63,9 @@ fun SettingsWearTemplateTileList( ) { Text( text = stringResource(id = commonR.string.template_tile_configure), - style = MaterialTheme.typography.body2, + style = MaterialTheme.typography.bodyMedium, fontWeight = FontWeight.Bold, - color = MaterialTheme.colors.primary, + color = LocalHAColorScheme.current.colorOnNeutralQuiet, ) } diff --git a/app/src/main/kotlin/io/homeassistant/companion/android/settings/views/SettingsRow.kt b/app/src/main/kotlin/io/homeassistant/companion/android/settings/views/SettingsRow.kt index 9ccf9537a01..def70c6d08c 100644 --- a/app/src/main/kotlin/io/homeassistant/companion/android/settings/views/SettingsRow.kt +++ b/app/src/main/kotlin/io/homeassistant/companion/android/settings/views/SettingsRow.kt @@ -10,13 +10,9 @@ import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width -import androidx.compose.material.ContentAlpha -import androidx.compose.material.LocalContentAlpha -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Text -import androidx.compose.material.contentColorFor +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha @@ -24,6 +20,7 @@ import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.unit.dp import com.mikepenz.iconics.compose.Image import com.mikepenz.iconics.typeface.IIcon +import io.homeassistant.companion.android.common.compose.theme.LocalHAColorScheme /** * A Composable that displays a typical Material Design clickable list item @@ -48,12 +45,12 @@ fun SettingsRow( asset = mdiIcon, modifier = Modifier .size(DefaultIconSize) - .alpha(if (enabled) ContentAlpha.high else ContentAlpha.disabled), + .alpha(if (enabled) 1f else 0.38f), colorFilter = ColorFilter.tint( if (enabled) { - MaterialTheme.colors.primary + LocalHAColorScheme.current.colorOnNeutralQuiet } else { - contentColorFor(backgroundColor = MaterialTheme.colors.background) + LocalHAColorScheme.current.colorOnNeutralQuiet.copy(alpha = 0.38f) }, ), ) @@ -95,14 +92,14 @@ fun SettingsRow( ) { Text( text = primaryText, - style = MaterialTheme.typography.body1, + style = MaterialTheme.typography.bodyLarge, + color = LocalHAColorScheme.current.colorTextPrimary, + ) + Text( + text = secondaryText, + style = MaterialTheme.typography.bodyMedium, + color = LocalHAColorScheme.current.colorTextSecondary, ) - CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.medium) { - Text( - text = secondaryText, - style = MaterialTheme.typography.body2, - ) - } } } } diff --git a/app/src/main/kotlin/io/homeassistant/companion/android/util/compose/FavoriteEntityRow.kt b/app/src/main/kotlin/io/homeassistant/companion/android/util/compose/FavoriteEntityRow.kt index 9a3230dd9c1..5bba0b200aa 100755 --- a/app/src/main/kotlin/io/homeassistant/companion/android/util/compose/FavoriteEntityRow.kt +++ b/app/src/main/kotlin/io/homeassistant/companion/android/util/compose/FavoriteEntityRow.kt @@ -7,19 +7,15 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.heightIn import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.ContentAlpha -import androidx.compose.material.Icon -import androidx.compose.material.IconButton -import androidx.compose.material.LocalContentAlpha -import androidx.compose.material.LocalContentColor -import androidx.compose.material.MaterialTheme -import androidx.compose.material.Surface -import androidx.compose.material.Text +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface +import androidx.compose.material3.Text import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Add import androidx.compose.material.icons.filled.Clear import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha @@ -29,6 +25,7 @@ import androidx.compose.ui.unit.dp import com.mikepenz.iconics.compose.Image import com.mikepenz.iconics.typeface.library.community.material.CommunityMaterial import io.homeassistant.companion.android.common.R +import io.homeassistant.companion.android.common.compose.theme.LocalHAColorScheme import sh.calvin.reorderable.ReorderableCollectionItemScope @Composable @@ -41,14 +38,15 @@ fun ReorderableCollectionItemScope.FavoriteEntityRow( draggable: Boolean = false, isDragging: Boolean = false, ) { - val surfaceElevation = animateDpAsState(targetValue = if (isDragging) 8.dp else 0.dp) + val toneElevation = animateDpAsState(targetValue = if (isDragging) 8.dp else 0.dp) var rowModifier = Modifier.fillMaxWidth().heightIn(min = 72.dp) if (draggable) { rowModifier = rowModifier.longPressDraggableHandle() } Surface( - elevation = surfaceElevation.value, + tonalElevation = toneElevation.value, modifier = modifier, + color = LocalHAColorScheme.current.colorSurfaceDefault, ) { Row( verticalAlignment = Alignment.CenterVertically, @@ -57,29 +55,33 @@ fun ReorderableCollectionItemScope.FavoriteEntityRow( Column( modifier = Modifier.weight(1f).padding(start = 16.dp), ) { - Text(text = entityName, style = MaterialTheme.typography.body1) - CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.medium) { - Text(text = entityId, style = MaterialTheme.typography.body2) - } + Text( + text = entityName, + style = MaterialTheme.typography.bodyLarge, + color = LocalHAColorScheme.current.colorTextPrimary, + ) + Text( + text = entityId, + style = MaterialTheme.typography.bodyMedium, + color = LocalHAColorScheme.current.colorOnNeutralQuiet, + ) } IconButton(onClick = onClick) { Icon( imageVector = if (checked) Icons.Default.Clear else Icons.Default.Add, contentDescription = stringResource(if (checked) R.string.delete else R.string.add_favorite), + tint = LocalHAColorScheme.current.colorTextPrimary, ) } if (draggable) { - CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.medium) { - Image( - asset = CommunityMaterial.Icon.cmd_drag_horizontal_variant, - contentDescription = stringResource(R.string.hold_to_reorder), - colorFilter = ColorFilter.tint(LocalContentColor.current), - modifier = Modifier - .size(width = 40.dp, height = 24.dp) - .padding(end = 16.dp) - .alpha(LocalContentAlpha.current), - ) - } + Image( + asset = CommunityMaterial.Icon.cmd_drag_horizontal_variant, + contentDescription = stringResource(R.string.hold_to_reorder), + colorFilter = ColorFilter.tint(LocalHAColorScheme.current.colorOnNeutralQuiet), + modifier = Modifier + .size(width = 40.dp, height = 24.dp) + .padding(end = 16.dp), + ) } } }