diff --git a/JetStreamCompose/jetstream/src/main/res/drawable/app_banner_foreground.xml b/JetStreamCompose/jetstream/src/main/res/drawable/app_banner_foreground.xml
new file mode 100644
index 00000000..c4656f8b
--- /dev/null
+++ b/JetStreamCompose/jetstream/src/main/res/drawable/app_banner_foreground.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
diff --git a/JetStreamCompose/jetstream/src/main/res/drawable/ic_launcher_foreground.xml b/JetStreamCompose/jetstream/src/main/res/drawable/ic_launcher_foreground.xml
index a544fcf1..38339e14 100644
--- a/JetStreamCompose/jetstream/src/main/res/drawable/ic_launcher_foreground.xml
+++ b/JetStreamCompose/jetstream/src/main/res/drawable/ic_launcher_foreground.xml
@@ -23,9 +23,6 @@
android:scaleY="0.2371875"
android:translateX="16.05"
android:translateY="32.653126">
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/App.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/App.kt
index 6b8aa0e4..1501af64 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/App.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/App.kt
@@ -12,14 +12,12 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.unit.LayoutDirection
-import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.MaterialTheme
import androidx.tv.material3.Surface
import com.google.tv.material.catalog.colorutils.Scheme.Companion.dark
import com.google.tv.material.catalog.colorutils.Scheme.Companion.light
import com.google.tv.material.catalog.colorutils.toColorScheme
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
fun App() {
var themeMode by remember { mutableStateOf(Mode.Dark) }
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/AppBar.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/AppBar.kt
index eaa08387..b40d907e 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/AppBar.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/AppBar.kt
@@ -7,6 +7,7 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape
@@ -22,7 +23,6 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.tv.material3.Button
-import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.Icon
import androidx.tv.material3.MaterialTheme
import androidx.tv.material3.Text
@@ -64,7 +64,6 @@ fun AppBar(
}
}
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
private fun HeadlineContent(
title: String,
@@ -72,6 +71,7 @@ private fun HeadlineContent(
isMainIconMagnified: Boolean,
) {
Row(
+ modifier = Modifier.height(64.dp),
horizontalArrangement = Arrangement.spacedBy(16.dp),
verticalAlignment = Alignment.CenterVertically,
) {
@@ -110,7 +110,6 @@ private fun HeadlineContent(
}
}
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
private fun Actions(
onThemeColorModeClick: () -> Unit,
@@ -129,7 +128,10 @@ private fun Actions(
)
)
- Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) {
+ Row(
+ horizontalArrangement = Arrangement.spacedBy(16.dp),
+ modifier = Modifier.padding(end = 8.dp)
+ ) {
actions.forEach {
Button(onClick = it.onClick) {
Icon(
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/Component.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/Component.kt
index 23a106a5..45dac91c 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/Component.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/Component.kt
@@ -1,5 +1,12 @@
package com.google.tv.material.catalog
+val foundations = listOf(
+ Component.Color,
+ Component.Typography,
+ Component.Motion,
+ Component.Interaction,
+)
+
val components = listOf(
Component.Button,
Component.Card,
@@ -7,28 +14,21 @@ val components = listOf(
Component.ListItem,
Component.ImmersiveList,
Component.FeaturedCarousel,
- Component.NavigationDrawer,
Component.TabRow,
+)
+
+val componentsPlanned = listOf(
+ Component.NavigationDrawer,
Component.ModalDialog,
Component.TextField,
Component.MediaPlayerOverlay,
)
-val foundations = listOf(
- Foundation.Color,
- Foundation.Typography,
- Foundation.Motion,
- Foundation.Interaction,
-)
-
-enum class Foundation(val title: String, val imageArg: String, val routeValue: String) {
+enum class Component(val title: String, val imageArg: String, val routeValue: String) {
Color(title = "Color", imageArg = "colors", routeValue = NavGraph.Color.routeName),
Typography(title = "Typography", imageArg = "typography", routeValue = NavGraph.Typography.routeName),
Motion(title = "Motion", imageArg = "motion", routeValue = NavGraph.Motion.routeName),
Interaction(title = "Interaction", imageArg = "interaction", routeValue = NavGraph.Interaction.routeName),
-}
-
-enum class Component(val title: String, val imageArg: String, val routeValue: String) {
Button(title = "Buttons", imageArg = "buttons", routeValue = NavGraph.Buttons.routeName),
Card(title = "Cards", imageArg = "cards", routeValue = NavGraph.Cards.routeName),
Chip(title = "Chips", imageArg = "chips", routeValue = NavGraph.Chips.routeName),
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/ExamplesScreenWithDottedBackground.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/ExamplesScreenWithDottedBackground.kt
index 00e75278..9c55a3fd 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/ExamplesScreenWithDottedBackground.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/ExamplesScreenWithDottedBackground.kt
@@ -30,7 +30,6 @@ import androidx.compose.ui.focus.onFocusChanged
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.graphics.PathEffect
import androidx.compose.ui.unit.dp
-import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.ListItem
import androidx.tv.material3.MaterialTheme
import androidx.tv.material3.Text
@@ -38,7 +37,7 @@ import androidx.tv.material3.surfaceColorAtElevation
import kotlinx.coroutines.delay
import kotlin.time.Duration.Companion.milliseconds
-@OptIn(ExperimentalTvMaterial3Api::class, ExperimentalComposeUiApi::class)
+@OptIn(ExperimentalComposeUiApi::class)
@Composable
fun ExamplesScreenWithDottedBackground(
actions: List
@@ -76,10 +75,11 @@ fun ExamplesScreenWithDottedBackground(
if (it.isFocused) {
activeAction = action
}
- }
- ) {
- Text(text = action.title)
- }
+ },
+ headlineContent = {
+ Text(text = action.title)
+ }
+ )
}
}
}
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/FontScaleAndLayoutDirectionSelector.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/FontScaleAndLayoutDirectionSelector.kt
index cc37a010..99e9f6a3 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/FontScaleAndLayoutDirectionSelector.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/FontScaleAndLayoutDirectionSelector.kt
@@ -28,16 +28,15 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.tv.foundation.PivotOffsets
import androidx.tv.foundation.lazy.list.TvLazyColumn
-import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.Icon
import androidx.tv.material3.ListItem
import androidx.tv.material3.MaterialTheme
-import androidx.tv.material3.NonInteractiveSurfaceDefaults
import androidx.tv.material3.RadioButton
import androidx.tv.material3.Surface
+import androidx.tv.material3.SurfaceDefaults
import androidx.tv.material3.Text
-@OptIn(ExperimentalTvMaterial3Api::class, ExperimentalComposeUiApi::class)
+@OptIn(ExperimentalComposeUiApi::class)
@Composable
fun FontScaleAndLayoutDirectionSelector(
isExpanded: Boolean,
@@ -69,7 +68,7 @@ fun FontScaleAndLayoutDirectionSelector(
.width(300.dp)
.padding(12.dp)
.align(Alignment.End),
- colors = NonInteractiveSurfaceDefaults
+ colors = SurfaceDefaults
.colors(containerColor = MaterialTheme.colorScheme.surface)
) {
TvLazyColumn(
@@ -122,10 +121,10 @@ fun FontScaleAndLayoutDirectionSelector(
},
trailingContent = {
RadioButton(selected = isSelected, onClick = { })
- }
- ) {
- Text(text = it.title)
- }
+ },
+ headlineContent = {
+ Text(text = it.title)
+ })
}
}
}
@@ -163,10 +162,10 @@ fun FontScaleAndLayoutDirectionSelector(
},
trailingContent = {
RadioButton(selected = isSelected, onClick = { })
- }
- ) {
- Text(text = it.title)
- }
+ },
+ headlineContent = {
+ Text(text = it.title)
+ })
}
}
}
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/HomeGrid.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/HomeGrid.kt
index acda4c28..07dee90a 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/HomeGrid.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/HomeGrid.kt
@@ -6,19 +6,30 @@ import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.remember
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
+import androidx.compose.ui.focus.FocusRequester
+import androidx.compose.ui.focus.focusRequester
+import androidx.compose.ui.focus.focusRestorer
import androidx.compose.ui.unit.dp
import androidx.tv.foundation.lazy.grid.TvGridCells
import androidx.tv.foundation.lazy.grid.TvGridItemSpan
import androidx.tv.foundation.lazy.grid.TvLazyVerticalGrid
import androidx.tv.foundation.lazy.grid.itemsIndexed
-import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.Text
-@OptIn(ExperimentalTvMaterial3Api::class, ExperimentalComposeUiApi::class)
+@OptIn(ExperimentalComposeUiApi::class)
@Composable
fun HomeGrid() {
+ val focusRequester = remember { FocusRequester() }
+ val itemClick = {
+ focusRequester.saveFocusedChild()
+ }
+ LaunchedEffect(Unit) {
+ focusRequester.requestFocus()
+ }
Column(Modifier.fillMaxSize()) {
Column(
Modifier
@@ -27,7 +38,10 @@ fun HomeGrid() {
) {
TvLazyVerticalGrid(
columns = TvGridCells.Fixed(4),
- modifier = Modifier.padding(top = 12.dp),
+ modifier = Modifier
+ .padding(top = 12.dp)
+ .focusRequester(focusRequester)
+ .focusRestorer(),
contentPadding = PaddingValues(vertical = 12.dp),
horizontalArrangement = Arrangement.spacedBy(20.dp),
verticalArrangement = Arrangement.spacedBy(20.dp)
@@ -37,7 +51,7 @@ fun HomeGrid() {
}
itemsIndexed(foundations) { index, item ->
- FoundationsGridCard(foundation = item)
+ ComponentsGridCard(component = item, onClick = itemClick)
}
item(span = { TvGridItemSpan(4) }) {
@@ -45,7 +59,15 @@ fun HomeGrid() {
}
itemsIndexed(components) { index, item ->
- ComponentsGridCard(component = item)
+ ComponentsGridCard(component = item, onClick = itemClick)
+ }
+
+ item(span = { TvGridItemSpan(4) }) {
+ Text(text = "Components (planned)")
+ }
+
+ itemsIndexed(componentsPlanned) { index, item ->
+ ComponentsGridCard(component = item, onClick = itemClick)
}
}
}
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/HomeGridCard.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/HomeGridCard.kt
index a075808f..e39f1a6d 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/HomeGridCard.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/HomeGridCard.kt
@@ -7,26 +7,29 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
+import androidx.tv.material3.Card
import androidx.tv.material3.CardDefaults
-import androidx.tv.material3.CardLayoutDefaults
-import androidx.tv.material3.ExperimentalTvMaterial3Api
-import androidx.tv.material3.StandardCardLayout
+import androidx.tv.material3.StandardCardContainer
import androidx.tv.material3.Text
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
fun ComponentsGridCard(
component: Component,
- modifier: Modifier = Modifier
+ modifier: Modifier = Modifier,
+ onClick: () -> Any = {}
) {
val image = getHomeGridCardImage(imageArg = component.imageArg)
val navHostController = LocalNavController.current
- StandardCardLayout(
+ StandardCardContainer(
modifier = modifier,
imageCard = {
- CardLayoutDefaults.ImageCard(
- onClick = { navHostController.navigate(component.routeValue) },
+ Card(
+ onClick = {
+ onClick().also {
+ navHostController.navigate(component.routeValue)
+ }
+ },
interactionSource = it,
colors = CardDefaults.colors(containerColor = Color.Transparent)
) {
@@ -41,32 +44,3 @@ fun ComponentsGridCard(
}
)
}
-
-@OptIn(ExperimentalTvMaterial3Api::class)
-@Composable
-fun FoundationsGridCard(
- foundation: Foundation,
- modifier: Modifier = Modifier
-) {
- val image = getHomeGridCardImage(imageArg = foundation.imageArg)
- val navHostController = LocalNavController.current
-
- StandardCardLayout(
- modifier = modifier,
- imageCard = {
- CardLayoutDefaults.ImageCard(
- onClick = { navHostController.navigate(foundation.routeValue) },
- interactionSource = it,
- colors = CardDefaults.colors(containerColor = Color.Transparent)
- ) {
- Image(painter = painterResource(id = image), contentDescription = null)
- }
- },
- title = {
- Text(
- text = foundation.title,
- modifier = Modifier.padding(top = 8.dp)
- )
- }
- )
-}
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/NavGraph.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/NavGraph.kt
index c05ef4c3..e841321d 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/NavGraph.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/NavGraph.kt
@@ -147,12 +147,6 @@ enum class NavGraph(
}
}
),
- NavigationDrawer(
- routeName = "nav-drawer",
- composable = {
- WorkInProgressScreen()
- }
- ),
TabRow(
routeName = "tab-row",
composable = { appBar ->
@@ -162,6 +156,12 @@ enum class NavGraph(
}
}
),
+ NavigationDrawer(
+ routeName = "nav-drawer",
+ composable = {
+ WorkInProgressScreen()
+ }
+ ),
ModalDialog(
routeName = "modal-dialog",
composable = {
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/ThemeAndColorModeSelector.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/ThemeAndColorModeSelector.kt
index fdd3cdf8..8b705814 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/ThemeAndColorModeSelector.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/ThemeAndColorModeSelector.kt
@@ -27,16 +27,15 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.tv.foundation.PivotOffsets
import androidx.tv.foundation.lazy.list.TvLazyColumn
-import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.Icon
import androidx.tv.material3.ListItem
import androidx.tv.material3.MaterialTheme
-import androidx.tv.material3.NonInteractiveSurfaceDefaults
import androidx.tv.material3.RadioButton
import androidx.tv.material3.Surface
+import androidx.tv.material3.SurfaceDefaults
import androidx.tv.material3.Text
-@OptIn(ExperimentalTvMaterial3Api::class, ExperimentalComposeUiApi::class)
+@OptIn(ExperimentalComposeUiApi::class)
@Composable
fun ThemeAndColorModeSelector(
isExpanded: Boolean,
@@ -68,7 +67,7 @@ fun ThemeAndColorModeSelector(
.width(300.dp)
.padding(12.dp)
.align(Alignment.End),
- colors = NonInteractiveSurfaceDefaults
+ colors = SurfaceDefaults
.colors(containerColor = MaterialTheme.colorScheme.surface)
) {
TvLazyColumn(
@@ -120,10 +119,10 @@ fun ThemeAndColorModeSelector(
},
trailingContent = {
RadioButton(selected = isSelected, onClick = { })
- }
- ) {
- Text(text = it.title)
- }
+ },
+ headlineContent = {
+ Text(text = it.title)
+ })
}
}
}
@@ -162,10 +161,10 @@ fun ThemeAndColorModeSelector(
},
trailingContent = {
RadioButton(selected = isSelected, onClick = { })
- }
- ) {
- Text(text = it.name)
- }
+ },
+ headlineContent = {
+ Text(text = it.name)
+ })
}
}
}
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/colorutils/ColorUtils.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/colorutils/ColorUtils.kt
index 61750482..b7a7744c 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/colorutils/ColorUtils.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/colorutils/ColorUtils.kt
@@ -2,7 +2,6 @@ package com.google.tv.material.catalog.colorutils
import androidx.compose.ui.graphics.Color
import androidx.tv.material3.ColorScheme
-import androidx.tv.material3.ExperimentalTvMaterial3Api
import kotlin.math.pow
@@ -233,7 +232,6 @@ object ColorUtils {
}
}
-@OptIn(ExperimentalTvMaterial3Api::class)
fun Scheme.toColorScheme(): ColorScheme {
return ColorScheme(
primary = Color(primary),
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ButtonsScreen.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ButtonsScreen.kt
index 866cc510..5b89a035 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ButtonsScreen.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ButtonsScreen.kt
@@ -14,7 +14,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.tv.material3.Button
import androidx.tv.material3.ButtonDefaults
-import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.Icon
import androidx.tv.material3.IconButton
import androidx.tv.material3.IconButtonDefaults
@@ -27,7 +26,6 @@ import androidx.tv.material3.WideButton
import com.google.tv.material.catalog.ExampleAction
import com.google.tv.material.catalog.ExamplesScreenWithDottedBackground
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
fun ButtonsScreen() {
val actions = listOf(
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/CardsScreen.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/CardsScreen.kt
index fd80cfe3..866d3089 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/CardsScreen.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/CardsScreen.kt
@@ -10,31 +10,29 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
+import androidx.tv.material3.Card
import androidx.tv.material3.CardDefaults
-import androidx.tv.material3.CardLayoutDefaults
import androidx.tv.material3.ClassicCard
import androidx.tv.material3.CompactCard
-import androidx.tv.material3.ExperimentalTvMaterial3Api
-import androidx.tv.material3.StandardCardLayout
+import androidx.tv.material3.StandardCardContainer
import androidx.tv.material3.Text
-import androidx.tv.material3.WideCardLayout
+import androidx.tv.material3.WideCardContainer
import androidx.tv.material3.WideClassicCard
import com.google.tv.material.catalog.ExampleAction
import com.google.tv.material.catalog.ExamplesScreenWithDottedBackground
import com.google.tv.material.catalog.R
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
fun CardsScreen() {
val actions = listOf(
ExampleAction(
title = "Standard card",
content = {
- StandardCardLayout(
+ StandardCardContainer(
modifier = Modifier.width(180.dp),
imageCard = {
- CardLayoutDefaults.ImageCard(
- onClick = { },
+ Card(
+ onClick = {},
interactionSource = it,
colors = CardDefaults.colors(containerColor = Color.Transparent)
) {
@@ -133,10 +131,10 @@ fun CardsScreen() {
ExampleAction(
title = "Wide standard card",
content = {
- WideCardLayout(
+ WideCardContainer(
modifier = Modifier,
imageCard = {
- CardLayoutDefaults.ImageCard(
+ Card(
onClick = { },
interactionSource = it,
colors = CardDefaults.colors(containerColor = Color.Transparent)
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ChipsScreen.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ChipsScreen.kt
index 0eb4f954..5a616e76 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ChipsScreen.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ChipsScreen.kt
@@ -113,7 +113,6 @@ fun ChipsScreen() {
ExamplesScreenWithDottedBackground(actions)
}
-@OptIn(ExperimentalTvMaterial3Api::class)
private val editIcon = @Composable {
Icon(
imageVector = Icons.Default.Edit,
@@ -121,7 +120,6 @@ private val editIcon = @Composable {
)
}
-@OptIn(ExperimentalTvMaterial3Api::class)
private val checkIcon = @Composable {
Icon(
imageVector = Icons.Default.Check,
@@ -129,7 +127,6 @@ private val checkIcon = @Composable {
)
}
-@OptIn(ExperimentalTvMaterial3Api::class)
private val clearIcon = @Composable {
Icon(
imageVector = Icons.Default.Clear,
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ColorsScreen.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ColorsScreen.kt
index 04e99c19..b374f2b3 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ColorsScreen.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ColorsScreen.kt
@@ -16,13 +16,11 @@ import androidx.tv.foundation.lazy.grid.TvGridCells
import androidx.tv.foundation.lazy.grid.TvGridItemSpan
import androidx.tv.foundation.lazy.grid.TvLazyVerticalGrid
import androidx.tv.material3.Border
-import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.MaterialTheme
-import androidx.tv.material3.NonInteractiveSurfaceDefaults
import androidx.tv.material3.Surface
+import androidx.tv.material3.SurfaceDefaults
import androidx.tv.material3.Text
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
fun ColorsScreen() {
Row(
@@ -131,7 +129,6 @@ fun ColorsScreen() {
}
}
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
private fun ColorBg(
text: String,
@@ -141,7 +138,7 @@ private fun ColorBg(
modifier = Modifier
.fillMaxWidth()
.height(60.dp),
- colors = NonInteractiveSurfaceDefaults.colors(
+ colors = SurfaceDefaults.colors(
containerColor = color
),
border = Border(
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/FeaturedCarouselScreen.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/FeaturedCarouselScreen.kt
index 77499377..4d7dbcda 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/FeaturedCarouselScreen.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/FeaturedCarouselScreen.kt
@@ -219,7 +219,6 @@ fun Modifier.carouselGradient(): Modifier = composed {
)
}
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
fun BottomCards(modifier: Modifier) {
TvLazyRow(
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ImmersiveListScreen.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ImmersiveListScreen.kt
index 10f1b7e9..31f6baef 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ImmersiveListScreen.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ImmersiveListScreen.kt
@@ -9,6 +9,7 @@ import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.aspectRatio
import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
@@ -37,13 +38,12 @@ import androidx.tv.foundation.lazy.list.TvLazyRow
import androidx.tv.foundation.lazy.list.itemsIndexed
import androidx.tv.material3.CardDefaults
import androidx.tv.material3.CompactCard
-import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.MaterialTheme
import androidx.tv.material3.Text
import com.google.tv.material.catalog.R
import com.google.tv.material.catalog.ifElse
-@OptIn(ExperimentalTvMaterial3Api::class, ExperimentalComposeUiApi::class)
+@OptIn(ExperimentalComposeUiApi::class)
@Composable
fun ImmersiveListScreen() {
var selectedCard by remember { mutableStateOf(immersiveListItems.first()) }
@@ -99,6 +99,7 @@ fun ImmersiveListScreen() {
TvLazyRow(
modifier = Modifier
.align(Alignment.BottomStart)
+ .fillMaxWidth()
.padding(bottom = 20.dp)
.focusRestorer { firstChildFr },
contentPadding = PaddingValues(start = 58.dp),
@@ -171,7 +172,6 @@ private data class ImmersiveListSlide(
val image: Int = 10,
)
-@OptIn(ExperimentalTvMaterial3Api::class)
fun Modifier.immersiveListGradient(): Modifier = composed {
val color = MaterialTheme.colorScheme.surface
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/InteractionsScreen.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/InteractionsScreen.kt
index 60e61ccd..a016fd47 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/InteractionsScreen.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/InteractionsScreen.kt
@@ -15,7 +15,6 @@ import androidx.compose.ui.unit.dp
import androidx.tv.material3.Border
import androidx.tv.material3.ClickableSurfaceDefaults
import androidx.tv.material3.ClickableSurfaceScale
-import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.Glow
import androidx.tv.material3.MaterialTheme
import androidx.tv.material3.Surface
@@ -23,7 +22,6 @@ import androidx.tv.material3.Text
import com.google.tv.material.catalog.ExampleAction
import com.google.tv.material.catalog.ExamplesScreenWithDottedBackground
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
fun InteractionsScreen() {
val actions = listOf(
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ListsScreen.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ListsScreen.kt
index b8af2ce3..7b7eb7ff 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ListsScreen.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/ListsScreen.kt
@@ -15,7 +15,6 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.tv.material3.DenseListItem
-import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.Icon
import androidx.tv.material3.ListItem
import androidx.tv.material3.ListItemDefaults
@@ -23,7 +22,6 @@ import androidx.tv.material3.Text
import com.google.tv.material.catalog.ExampleAction
import com.google.tv.material.catalog.ExamplesScreenWithDottedBackground
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
fun ListsScreen() {
val actions = listOf(
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/MotionScreen.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/MotionScreen.kt
index c460002b..ae994d25 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/MotionScreen.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/MotionScreen.kt
@@ -24,7 +24,6 @@ import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
-import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.MaterialTheme
import androidx.tv.material3.Text
import com.google.tv.material.catalog.ExampleAction
@@ -63,7 +62,6 @@ fun MotionScreen() {
ExamplesScreenWithDottedBackground(actions)
}
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
private fun StandardMotion() {
Column(
@@ -143,7 +141,6 @@ private fun StandardMotion() {
}
}
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
private fun BrowseMotion() {
Column(
@@ -223,7 +220,6 @@ private fun BrowseMotion() {
}
}
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
private fun EnterMotion() {
Column(
@@ -303,7 +299,6 @@ private fun EnterMotion() {
}
}
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
private fun ExitMotion() {
Column(
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/TabRowScreen.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/TabRowScreen.kt
index c6829981..ae1a6c48 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/TabRowScreen.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/TabRowScreen.kt
@@ -23,7 +23,6 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
-import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.MaterialTheme
import androidx.tv.material3.Tab
import androidx.tv.material3.TabDefaults
@@ -60,7 +59,6 @@ fun TabRowScreen() {
ExamplesScreenWithDottedBackground(actions)
}
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
private fun PillIndicatorTabRow() {
var selectedTabIndex by remember { mutableIntStateOf(0) }
@@ -89,7 +87,6 @@ private fun PillIndicatorTabRow() {
}
}
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
private fun UnderlinedIndicatorTabRow() {
var selectedTabIndex by remember { mutableIntStateOf(0) }
@@ -130,12 +127,8 @@ private fun UnderlinedIndicatorTabRow() {
@Composable
private fun TabPanels(selectedTabIndex: Int) {
- var value = 0
-
AnimatedContent(targetState = selectedTabIndex, label = "") {
- value = it
-
- when (selectedTabIndex) {
+ when (it) {
getTabIndex("Search") -> {
Column(
modifier = Modifier
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/TypographyScreen.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/TypographyScreen.kt
index 1a167353..d51883bc 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/TypographyScreen.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/TypographyScreen.kt
@@ -8,13 +8,11 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
-import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.MaterialTheme
import androidx.tv.material3.Text
import com.google.tv.material.catalog.ExampleAction
import com.google.tv.material.catalog.ExamplesScreenWithDottedBackground
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
fun TypographyScreen() {
val actions = listOf(
diff --git a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/WorkInProgressScreen.kt b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/WorkInProgressScreen.kt
index 546d1012..5be61987 100644
--- a/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/WorkInProgressScreen.kt
+++ b/TvMaterialCatalog/app/src/main/java/com/google/tv/material/catalog/screens/WorkInProgressScreen.kt
@@ -7,10 +7,8 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
-import androidx.tv.material3.ExperimentalTvMaterial3Api
import androidx.tv.material3.Text
-@OptIn(ExperimentalTvMaterial3Api::class)
@Composable
fun WorkInProgressScreen() {
Box(modifier = Modifier.fillMaxSize()) {
diff --git a/TvMaterialCatalog/gradle/libs.versions.toml b/TvMaterialCatalog/gradle/libs.versions.toml
index 9c94179f..39c04f75 100644
--- a/TvMaterialCatalog/gradle/libs.versions.toml
+++ b/TvMaterialCatalog/gradle/libs.versions.toml
@@ -1,5 +1,5 @@
[versions]
-agp = "8.3.1"
+agp = "8.4.0"
coil-compose = "2.5.0"
kotlin = "1.9.0"
core-ktx = "1.12.0"
@@ -7,7 +7,7 @@ appcompat = "1.6.1"
compose-bom = "2024.03.00"
navigation-compose = "2.7.7"
tv-foundation = "1.0.0-alpha10"
-tv-material = "1.0.0-alpha10"
+tv-material = "1.0.0-beta01"
lifecycle-runtime-ktx = "2.7.0"
activity-compose = "1.8.2"
@@ -25,4 +25,3 @@ activity-compose = { group = "androidx.activity", name = "activity-compose", ver
[plugins]
androidApplication = { id = "com.android.application", version.ref = "agp" }
kotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
-
diff --git a/TvMaterialCatalog/gradle/wrapper/gradle-wrapper.properties b/TvMaterialCatalog/gradle/wrapper/gradle-wrapper.properties
index 5b26786d..34e2261e 100644
--- a/TvMaterialCatalog/gradle/wrapper/gradle-wrapper.properties
+++ b/TvMaterialCatalog/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Tue Dec 12 14:24:49 IST 2023
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists