From d67c9927ad762e8990565b54cb3d3eb9928f3c72 Mon Sep 17 00:00:00 2001 From: Angeles Date: Mon, 5 Apr 2021 16:55:42 -0500 Subject: [PATCH 1/5] Issue459 - TopAppBar doesn't match design spec Added corrections for the top Bar in order to look like the most recent design --- .../jetnews/ui/article/ArticleScreen.kt | 36 +++++++++++++---- .../com/example/jetnews/ui/home/HomeScreen.kt | 35 ++++++++++++++-- .../jetnews/ui/interests/InterestsScreen.kt | 38 +++++++++++++----- .../com/example/jetnews/ui/theme/Theme.kt | 6 ++- .../res/mipmap-hdpi/ic_android_article.png | Bin 0 -> 3108 bytes .../res/mipmap-mdpi/ic_android_article.png | Bin 0 -> 1768 bytes .../res/mipmap-xhdpi/ic_android_article.png | Bin 0 -> 4409 bytes .../res/mipmap-xxhdpi/ic_android_article.png | Bin 0 -> 6976 bytes .../res/mipmap-xxxhdpi/ic_android_article.png | Bin 0 -> 10017 bytes JetNews/app/src/main/res/values/strings.xml | 1 + 10 files changed, 92 insertions(+), 24 deletions(-) create mode 100644 JetNews/app/src/main/res/mipmap-hdpi/ic_android_article.png create mode 100644 JetNews/app/src/main/res/mipmap-mdpi/ic_android_article.png create mode 100644 JetNews/app/src/main/res/mipmap-xhdpi/ic_android_article.png create mode 100644 JetNews/app/src/main/res/mipmap-xxhdpi/ic_android_article.png create mode 100644 JetNews/app/src/main/res/mipmap-xxxhdpi/ic_android_article.png diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt index c1ecbc55e9..992a084bd8 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt @@ -62,6 +62,9 @@ import com.example.jetnews.ui.home.BookmarkButton import com.example.jetnews.utils.produceUiState import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.* +import androidx.compose.ui.graphics.ColorFilter /** * Stateful Article Screen that manages state using [produceUiState] @@ -128,20 +131,37 @@ fun ArticleScreen( topBar = { TopAppBar( title = { - Text( - text = "Published in: ${post.publication?.name}", - style = MaterialTheme.typography.subtitle2, - color = LocalContentColor.current - ) + Column(modifier=Modifier.padding(top= 10.dp, bottom = 5.dp)){ + Row( + modifier = Modifier + .fillMaxWidth() + .wrapContentWidth(align = Alignment.CenterHorizontally) + .padding(end=50.dp) + ) { + Image( + painter=painterResource(R.mipmap.ic_android_article), + contentDescription = "", + modifier = Modifier.padding(end= 10.dp) + ) + Text( + text = "Published in: \n${post.publication?.name}", + style = MaterialTheme.typography.subtitle2, + color = LocalContentColor.current + ) + } + } }, navigationIcon = { IconButton(onClick = onBack) { - Icon( + Image( imageVector = Icons.Filled.ArrowBack, - contentDescription = stringResource(R.string.cd_navigate_up) + contentDescription = stringResource(R.string.cd_navigate_up), + colorFilter= ColorFilter.tint(MaterialTheme.colors.primary) ) } - } + }, + elevation = 0.dp, + backgroundColor = MaterialTheme.colors.onPrimary ) }, content = { innerPadding -> diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/home/HomeScreen.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/home/HomeScreen.kt index 80c76ffcb7..346ca3a62d 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/home/HomeScreen.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/home/HomeScreen.kt @@ -16,6 +16,7 @@ package com.example.jetnews.ui.home +import androidx.compose.foundation.Image import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -41,6 +42,8 @@ import androidx.compose.material.Surface import androidx.compose.material.Text import androidx.compose.material.TextButton import androidx.compose.material.TopAppBar +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Search import androidx.compose.material.rememberDrawerState import androidx.compose.material.rememberScaffoldState import androidx.compose.runtime.Composable @@ -51,6 +54,7 @@ import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.rememberUpdatedState import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -170,15 +174,38 @@ fun HomeScreen( topBar = { val title = stringResource(id = R.string.app_name) TopAppBar( - title = { Text(text = title) }, + title = { + Image( + painter = painterResource(R.drawable.ic_jetnews_wordmark), + contentDescription = title, + colorFilter = ColorFilter.tint(MaterialTheme.colors.onBackground), + modifier = Modifier + .fillMaxSize() + .padding(bottom = 4.dp, top=10.dp) + ) + }, navigationIcon = { IconButton(onClick = { coroutineScope.launch { scaffoldState.drawerState.open() } }) { - Icon( + Image( painter = painterResource(R.drawable.ic_jetnews_logo), - contentDescription = stringResource(R.string.cd_open_navigation_drawer) + contentDescription = stringResource(R.string.cd_open_navigation_drawer), + colorFilter = ColorFilter.tint(MaterialTheme.colors.primary) ) } - } + }, + actions={ + IconButton( + onClick = { /* TODO: Open search */ } + ) { + Icon( + imageVector = Icons.Filled.Search, + contentDescription = stringResource(R.string.cd_search) + ) + } + }, + elevation = 0.dp, + backgroundColor = MaterialTheme.colors.onPrimary, + modifier = Modifier.padding(bottom = 10.dp) ) }, content = { innerPadding -> diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/interests/InterestsScreen.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/interests/InterestsScreen.kt index 9210abd9a5..2457b2ed54 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/interests/InterestsScreen.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/interests/InterestsScreen.kt @@ -17,12 +17,7 @@ package com.example.jetnews.ui.interests import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.selection.toggleable @@ -38,6 +33,8 @@ import androidx.compose.material.Tab import androidx.compose.material.TabRow import androidx.compose.material.Text import androidx.compose.material.TopAppBar +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Search import androidx.compose.material.rememberDrawerState import androidx.compose.material.rememberScaffoldState import androidx.compose.runtime.Composable @@ -49,8 +46,10 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.example.jetnews.R @@ -182,15 +181,34 @@ fun InterestsScreen( }, topBar = { TopAppBar( - title = { Text("Interests") }, + title = { + Text( + text="Interests", + modifier=Modifier.fillMaxWidth(), + textAlign = TextAlign.Center + ) + }, navigationIcon = { IconButton(onClick = { coroutineScope.launch { scaffoldState.drawerState.open() } }) { - Icon( + Image( painter = painterResource(R.drawable.ic_jetnews_logo), - contentDescription = stringResource(R.string.cd_open_navigation_drawer) + contentDescription = stringResource(R.string.cd_open_navigation_drawer), + colorFilter= ColorFilter.tint(MaterialTheme.colors.primary) + ) + } + }, + actions={ + IconButton( + onClick = { /* TODO: Open search */ } + ) { + Icon( + imageVector = Icons.Filled.Search, + contentDescription = stringResource(R.string.cd_search) ) } - } + }, + elevation = 0.dp, + backgroundColor = MaterialTheme.colors.onPrimary ) }, content = { diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/theme/Theme.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/theme/Theme.kt index 883a2fbfe0..426b2df65f 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/theme/Theme.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/theme/Theme.kt @@ -30,7 +30,8 @@ private val LightThemeColors = lightColors( secondary = Red700, secondaryVariant = Red900, onSecondary = Color.White, - error = Red800 + error = Red800, + onBackground = Color.Black ) private val DarkThemeColors = darkColors( @@ -39,7 +40,8 @@ private val DarkThemeColors = darkColors( onPrimary = Color.Black, secondary = Red300, onSecondary = Color.Black, - error = Red200 + error = Red200, + onBackground = Color.White ) @Composable diff --git a/JetNews/app/src/main/res/mipmap-hdpi/ic_android_article.png b/JetNews/app/src/main/res/mipmap-hdpi/ic_android_article.png new file mode 100644 index 0000000000000000000000000000000000000000..98c9320d64cb827176be6ec4eaf45b0298d89cdd GIT binary patch literal 3108 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 KMNUMnLSTYE;Bevq literal 0 HcmV?d00001 diff --git a/JetNews/app/src/main/res/mipmap-xhdpi/ic_android_article.png b/JetNews/app/src/main/res/mipmap-xhdpi/ic_android_article.png new file mode 100644 index 0000000000000000000000000000000000000000..ea449bc45bf0ab5a39ad1a89feb78ef0338a2491 GIT binary patch literal 4409 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

XVkf`F}I(P&mt}r%o5rh^P zAJZw_903mgH}xhs2FKzYoQrGVTDT^zjeFo;xF_z7HrS*oA<>fwp#erim_TxhLL6!; z@C3-81hL>D5L#e-B((4vAcG$GA3nn|I2Pv!qTpJ%Ca#Tp;9j^V?yV0`Hfc&w^n}ur zN)QX40S1Scfbju%jdT#7<5--7a|KcKWU&cT<|2%1B$pl_gC54u^(0xcWchy%xfWp% SR-F+50000T){Rtu7GQB35FQsh?0a5AcanF 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 literal 0 HcmV?d00001 diff --git a/JetNews/app/src/main/res/values/strings.xml b/JetNews/app/src/main/res/values/strings.xml index 9f60609adc..7ff6b24b27 100644 --- a/JetNews/app/src/main/res/values/strings.xml +++ b/JetNews/app/src/main/res/values/strings.xml @@ -25,4 +25,5 @@ Bookmark unbookmark bookmark + Search From af6c73545ee3e95b76c953ffd0d17ae92ff063df Mon Sep 17 00:00:00 2001 From: Angeles Date: Tue, 6 Apr 2021 10:36:14 -0500 Subject: [PATCH 2/5] Removed unnecessary imports --- .../java/com/example/jetnews/ui/article/ArticleScreen.kt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt index 992a084bd8..4f0118e54d 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt @@ -18,11 +18,6 @@ package com.example.jetnews.ui.article import android.content.Context import android.content.Intent -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.material.AlertDialog import androidx.compose.material.Icon import androidx.compose.material.IconButton From 657c99dab0405119b73482065bddaf4cc5d1abf1 Mon Sep 17 00:00:00 2001 From: Angeles Date: Tue, 6 Apr 2021 11:45:51 -0500 Subject: [PATCH 3/5] Removed wildcard imports --- .../java/com/example/jetnews/ui/article/ArticleScreen.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt index 4f0118e54d..88e2187dff 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt @@ -58,7 +58,13 @@ import com.example.jetnews.utils.produceUiState import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.* +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.wrapContentWidth import androidx.compose.ui.graphics.ColorFilter /** From 5575a951f68bc8a8ec2e08da42c836552b1906fb Mon Sep 17 00:00:00 2001 From: Angeles Date: Tue, 6 Apr 2021 11:52:51 -0500 Subject: [PATCH 4/5] Removed wildcard imports from interests screen --- .../com/example/jetnews/ui/interests/InterestsScreen.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/interests/InterestsScreen.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/interests/InterestsScreen.kt index 2457b2ed54..4838e8d8a2 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/interests/InterestsScreen.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/interests/InterestsScreen.kt @@ -17,7 +17,13 @@ package com.example.jetnews.ui.interests import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.* +import androidx.compose.foundation.layout.Box +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.padding +import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.selection.toggleable From 0e2721a68fde9e3bbffefadabe256fcdbc29185d Mon Sep 17 00:00:00 2001 From: Angeles Date: Tue, 6 Apr 2021 14:59:00 -0500 Subject: [PATCH 5/5] spotless apply --- .../jetnews/ui/article/ArticleScreen.kt | 28 +++++++++---------- .../com/example/jetnews/ui/home/HomeScreen.kt | 14 +++++----- .../jetnews/ui/interests/InterestsScreen.kt | 8 +++--- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt index 88e2187dff..bb313a0841 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt @@ -18,6 +18,14 @@ package com.example.jetnews.ui.article import android.content.Context import android.content.Intent +import androidx.compose.foundation.Image +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.wrapContentWidth import androidx.compose.material.AlertDialog import androidx.compose.material.Icon import androidx.compose.material.IconButton @@ -41,6 +49,7 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource @@ -57,15 +66,6 @@ import com.example.jetnews.ui.home.BookmarkButton import com.example.jetnews.utils.produceUiState import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking -import androidx.compose.foundation.Image -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.wrapContentWidth -import androidx.compose.ui.graphics.ColorFilter /** * Stateful Article Screen that manages state using [produceUiState] @@ -132,17 +132,17 @@ fun ArticleScreen( topBar = { TopAppBar( title = { - Column(modifier=Modifier.padding(top= 10.dp, bottom = 5.dp)){ + Column(modifier = Modifier.padding(top = 10.dp, bottom = 5.dp)) { Row( modifier = Modifier .fillMaxWidth() .wrapContentWidth(align = Alignment.CenterHorizontally) - .padding(end=50.dp) + .padding(end = 50.dp) ) { Image( - painter=painterResource(R.mipmap.ic_android_article), + painter = painterResource(R.mipmap.ic_android_article), contentDescription = "", - modifier = Modifier.padding(end= 10.dp) + modifier = Modifier.padding(end = 10.dp) ) Text( text = "Published in: \n${post.publication?.name}", @@ -157,7 +157,7 @@ fun ArticleScreen( Image( imageVector = Icons.Filled.ArrowBack, contentDescription = stringResource(R.string.cd_navigate_up), - colorFilter= ColorFilter.tint(MaterialTheme.colors.primary) + colorFilter = ColorFilter.tint(MaterialTheme.colors.primary) ) } }, diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/home/HomeScreen.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/home/HomeScreen.kt index 346ca3a62d..ba5bb76a2a 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/home/HomeScreen.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/home/HomeScreen.kt @@ -176,12 +176,12 @@ fun HomeScreen( TopAppBar( title = { Image( - painter = painterResource(R.drawable.ic_jetnews_wordmark), - contentDescription = title, - colorFilter = ColorFilter.tint(MaterialTheme.colors.onBackground), - modifier = Modifier - .fillMaxSize() - .padding(bottom = 4.dp, top=10.dp) + painter = painterResource(R.drawable.ic_jetnews_wordmark), + contentDescription = title, + colorFilter = ColorFilter.tint(MaterialTheme.colors.onBackground), + modifier = Modifier + .fillMaxSize() + .padding(bottom = 4.dp, top = 10.dp) ) }, navigationIcon = { @@ -193,7 +193,7 @@ fun HomeScreen( ) } }, - actions={ + actions = { IconButton( onClick = { /* TODO: Open search */ } ) { diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/interests/InterestsScreen.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/interests/InterestsScreen.kt index 4838e8d8a2..71e55f3b9c 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/interests/InterestsScreen.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/interests/InterestsScreen.kt @@ -189,8 +189,8 @@ fun InterestsScreen( TopAppBar( title = { Text( - text="Interests", - modifier=Modifier.fillMaxWidth(), + text = "Interests", + modifier = Modifier.fillMaxWidth(), textAlign = TextAlign.Center ) }, @@ -199,11 +199,11 @@ fun InterestsScreen( Image( painter = painterResource(R.drawable.ic_jetnews_logo), contentDescription = stringResource(R.string.cd_open_navigation_drawer), - colorFilter= ColorFilter.tint(MaterialTheme.colors.primary) + colorFilter = ColorFilter.tint(MaterialTheme.colors.primary) ) } }, - actions={ + actions = { IconButton( onClick = { /* TODO: Open search */ } ) {