From 20d8480a8e63b5c6039bf6050c8013e64fc131b2 Mon Sep 17 00:00:00 2001 From: Nicole Georgieva <93789076+nicolegeorgieva@users.noreply.github.com> Date: Fri, 22 Sep 2023 15:27:39 +0300 Subject: [PATCH] Fix issue 2664 - Refactor new screens to use Material 3 design (#2665) * Refactor AttributionsScreen * Refactor ContributorsScreen * Update dependencies in FeaturesScreen's build.gradle * Show contributors count on ContributorsScreen --- ivy-design/build.gradle.kts | 4 +++ screen-attributions/build.gradle.kts | 3 +- .../ivy/attributions/AttributionsScreen.kt | 30 +++++++------------ screen-contributors/build.gradle.kts | 4 +-- .../ivy/contributors/ContributorsScreen.kt | 18 +++++++---- screen-features/build.gradle.kts | 2 +- 6 files changed, 31 insertions(+), 30 deletions(-) diff --git a/ivy-design/build.gradle.kts b/ivy-design/build.gradle.kts index cda6e4b4d..e6740807d 100644 --- a/ivy-design/build.gradle.kts +++ b/ivy-design/build.gradle.kts @@ -4,4 +4,8 @@ plugins { android { namespace = "com.ivy.design" +} + +dependencies { + implementation(projects.ivyResources) } \ No newline at end of file diff --git a/screen-attributions/build.gradle.kts b/screen-attributions/build.gradle.kts index 228676537..aa55fe50b 100644 --- a/screen-attributions/build.gradle.kts +++ b/screen-attributions/build.gradle.kts @@ -9,8 +9,7 @@ android { dependencies { implementation(projects.ivyCore) implementation(projects.ivyResources) - implementation(projects.tempOldDesign) implementation(projects.ivyNavigation) implementation(projects.ivyCoreUi) - implementation(projects.tempLegacyCode) + implementation(projects.ivyDesign) } \ No newline at end of file diff --git a/screen-attributions/src/main/java/com/ivy/attributions/AttributionsScreen.kt b/screen-attributions/src/main/java/com/ivy/attributions/AttributionsScreen.kt index 7b22ec000..7b71f8679 100644 --- a/screen-attributions/src/main/java/com/ivy/attributions/AttributionsScreen.kt +++ b/screen-attributions/src/main/java/com/ivy/attributions/AttributionsScreen.kt @@ -16,22 +16,18 @@ import androidx.compose.material3.Card import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalUriHandler -import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel -import com.ivy.design.l0_system.Gray -import com.ivy.design.l0_system.UI -import com.ivy.design.l0_system.style -import com.ivy.legacy.IvyWalletPreview +import com.ivy.design.system.IvyPreview import com.ivy.navigation.Navigation import com.ivy.navigation.navigation import kotlinx.collections.immutable.ImmutableList @@ -57,7 +53,7 @@ private fun AttributionsUI( topBar = { TopAppBar( title = { - TopAppBarTitle(text = "Attributions") + TopAppBarTitle(title = "Attributions") }, navigationIcon = { BackButton(nav = nav) @@ -71,14 +67,11 @@ private fun AttributionsUI( } @Composable -private fun TopAppBarTitle(text: String) { +private fun TopAppBarTitle(title: String) { Text( - text = text, + text = title, maxLines = 1, - overflow = TextOverflow.Ellipsis, - style = UI.typo.h2.style( - fontWeight = FontWeight.Black - ) + overflow = TextOverflow.Ellipsis ) } @@ -151,16 +144,13 @@ private fun AttributionCard(attribution: AttributionItem.Attribution) { @Composable private fun AttributionsSectionDivider( - text: String, - color: Color = Gray + text: String ) { Text( modifier = Modifier.padding(start = 12.dp), text = text, - style = UI.typo.b2.style( - color = color, - fontWeight = FontWeight.Bold - ) + style = MaterialTheme.typography.labelLarge, + color = MaterialTheme.colorScheme.tertiary ) } @@ -193,7 +183,7 @@ private fun AttributionsUIPreview() { ) ) - IvyWalletPreview { + IvyPreview { AttributionsUI(uiState = AttributionsState(attributionItems)) } } \ No newline at end of file diff --git a/screen-contributors/build.gradle.kts b/screen-contributors/build.gradle.kts index 3015687fd..bb5ff4aea 100644 --- a/screen-contributors/build.gradle.kts +++ b/screen-contributors/build.gradle.kts @@ -14,6 +14,6 @@ dependencies { implementation(projects.ivyCoreUi) implementation(libs.bundles.ktor) - implementation(projects.tempLegacyCode) - implementation(projects.tempOldDesign) + + implementation(projects.ivyDesign) } \ No newline at end of file diff --git a/screen-contributors/src/main/java/com/ivy/contributors/ContributorsScreen.kt b/screen-contributors/src/main/java/com/ivy/contributors/ContributorsScreen.kt index d1c60780e..62892f22b 100644 --- a/screen-contributors/src/main/java/com/ivy/contributors/ContributorsScreen.kt +++ b/screen-contributors/src/main/java/com/ivy/contributors/ContributorsScreen.kt @@ -42,7 +42,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.lifecycle.viewmodel.compose.viewModel import coil.compose.AsyncImage -import com.ivy.legacy.IvyWalletPreview +import com.ivy.design.system.IvyPreview import com.ivy.navigation.Navigation import com.ivy.navigation.navigation import com.ivy.resources.R @@ -74,7 +74,15 @@ private fun ContributorsUi( topBar = { TopAppBar( title = { - TopAppBarTitle(title = "Contributors") + TopAppBarTitle( + title = when (uiState.contributorsResponse) { + is ContributorsResponse.Error, ContributorsResponse.Loading -> + "Contributors" + + is ContributorsResponse.Success -> + "${uiState.contributorsResponse.contributors.size} Contributors" + } + ) }, navigationIcon = { BackButton(nav = nav) @@ -344,7 +352,7 @@ private fun GitHubButton( @Preview @Composable private fun PreviewSuccess() { - IvyWalletPreview { + IvyPreview { ContributorsUi( uiState = ContributorsState( projectResponse = ProjectResponse.Success( @@ -373,7 +381,7 @@ private fun PreviewSuccess() { @Preview @Composable private fun PreviewError() { - IvyWalletPreview { + IvyPreview { ContributorsUi( uiState = ContributorsState( projectResponse = ProjectResponse.Error, @@ -387,7 +395,7 @@ private fun PreviewError() { @Preview @Composable private fun PreviewLoading() { - IvyWalletPreview { + IvyPreview { ContributorsUi( uiState = ContributorsState( projectResponse = ProjectResponse.Loading, diff --git a/screen-features/build.gradle.kts b/screen-features/build.gradle.kts index 6ab2e4172..b54c6721c 100644 --- a/screen-features/build.gradle.kts +++ b/screen-features/build.gradle.kts @@ -9,7 +9,7 @@ android { dependencies { implementation(projects.ivyCore) implementation(projects.ivyResources) - implementation(projects.tempOldDesign) implementation(projects.ivyNavigation) implementation(projects.ivyCoreUi) + implementation(projects.ivyDesign) } \ No newline at end of file