From eb76767a7d14cfc8706141bb12c7cbe234b8fa6d Mon Sep 17 00:00:00 2001 From: jephthah Date: Fri, 7 Apr 2023 21:37:34 +0100 Subject: [PATCH] added scaffold paddingValues to Dialog items --- .../com/guru/composecookbook/MainActivity.kt | 20 +++---------------- .../ui/home/dialogs/DialogsActivity.kt | 16 +++++++++------ .../twitter/components/icons/IconCounter.kt | 14 +++++++++++++ 3 files changed, 27 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/com/guru/composecookbook/MainActivity.kt b/app/src/main/java/com/guru/composecookbook/MainActivity.kt index 96088ae4..663c39b8 100644 --- a/app/src/main/java/com/guru/composecookbook/MainActivity.kt +++ b/app/src/main/java/com/guru/composecookbook/MainActivity.kt @@ -6,13 +6,9 @@ import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.animation.Crossfade -import androidx.compose.animation.ExperimentalAnimationApi -import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.material.BottomNavigation -import androidx.compose.material.BottomNavigationItem import androidx.compose.material.ExperimentalMaterialApi import androidx.compose.material.LocalContentAlpha import androidx.compose.material.ModalBottomSheetLayout @@ -29,7 +25,6 @@ import androidx.compose.material3.NavigationRail import androidx.compose.material3.NavigationRailItem import androidx.compose.material3.Surface import androidx.compose.material3.Text -import androidx.compose.material3.contentColorFor import androidx.compose.runtime.Composable import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue @@ -69,9 +64,6 @@ import com.guru.fontawesomecomposelib.FaIcon import kotlinx.coroutines.launch class MainActivity : ComponentActivity() { - @OptIn(ExperimentalAnimationApi::class, - ExperimentalFoundationApi::class, - ExperimentalMaterialApi::class) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) //for adView demo @@ -108,9 +100,8 @@ fun BaseView( } } -@OptIn(ExperimentalAnimationApi::class, -ExperimentalFoundationApi::class, -ExperimentalMaterialApi::class) +@OptIn( + ExperimentalMaterialApi::class) @Composable fun HomeScreenContent( homeScreen: BottomNavType, @@ -134,9 +125,7 @@ fun HomeScreenContent( } } -@OptIn(ExperimentalAnimationApi::class, -ExperimentalFoundationApi::class, -ExperimentalMaterialApi::class) +@OptIn(ExperimentalMaterialApi::class) @Composable fun MainAppContent(appThemeState: MutableState) { //Default home screen state is always HOME @@ -445,9 +434,6 @@ private fun NavigationRailContent( } } -@OptIn(ExperimentalAnimationApi::class, -ExperimentalFoundationApi::class, -ExperimentalMaterialApi::class) @Preview(showBackground = true) @Composable fun DefaultPreview() { diff --git a/app/src/main/java/com/guru/composecookbook/ui/home/dialogs/DialogsActivity.kt b/app/src/main/java/com/guru/composecookbook/ui/home/dialogs/DialogsActivity.kt index f7ff4371..89ea535b 100644 --- a/app/src/main/java/com/guru/composecookbook/ui/home/dialogs/DialogsActivity.kt +++ b/app/src/main/java/com/guru/composecookbook/ui/home/dialogs/DialogsActivity.kt @@ -77,14 +77,16 @@ fun DialogScreen(onBack: () -> Unit) { ) }, - content = { - DialogsOptionList() + content = {paddingValues-> + DialogsOptionList( + paddingValues = paddingValues + ) } ) } @Composable -fun DialogsOptionList() { +fun DialogsOptionList(paddingValues: PaddingValues) { //Here we are using power of making simple data classes act as stateful when using `by state` var dialogState by remember { mutableStateOf(DialogState(false, DialogType.SIMPLE)) } @@ -98,7 +100,7 @@ fun DialogsOptionList() { Column( modifier = Modifier .verticalScroll(rememberScrollState()) - .padding(16.dp) + .padding(paddingValues) ) { Button( onClick = { dialogState = dialogState.copy(showDialog = true) }, @@ -348,8 +350,10 @@ fun ShowDialog(type: DialogType, onDismiss: () -> Unit) { @Preview(showBackground = true) @Composable -fun DefaultPreview3() { +fun DefaultPreview3( + paddingValues:PaddingValues = PaddingValues() +) { ComposeCookBookTheme { - DialogsOptionList() + DialogsOptionList(paddingValues) } } \ No newline at end of file diff --git a/demos/twitter/src/main/java/com/guru/composecookbook/twitter/components/icons/IconCounter.kt b/demos/twitter/src/main/java/com/guru/composecookbook/twitter/components/icons/IconCounter.kt index 7fcf9421..1abfbe58 100644 --- a/demos/twitter/src/main/java/com/guru/composecookbook/twitter/components/icons/IconCounter.kt +++ b/demos/twitter/src/main/java/com/guru/composecookbook/twitter/components/icons/IconCounter.kt @@ -1,15 +1,29 @@ package com.guru.composecookbook.twitter.components.icons +import androidx.compose.animation.animateColor +import androidx.compose.animation.core.animateDp +import androidx.compose.animation.core.keyframes +import androidx.compose.animation.core.tween +import androidx.compose.animation.core.updateTransition +import androidx.compose.foundation.Image +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.* import androidx.compose.material.Icon import androidx.compose.material.IconButton import androidx.compose.material.MaterialTheme import androidx.compose.material.Text import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Favorite import androidx.compose.material.icons.filled.FavoriteBorder import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.graphics.vector.rememberVectorPainter import androidx.compose.ui.res.painterResource