Skip to content

Commit b73fc55

Browse files
[Jetnews] Update icons and remove material icons dependency (#1587)
This commit replaces the Material Icons dependency with local drawable resources for all icons used in the JetNews sample.
2 parents b1ef44c + 3bb817b commit b73fc55

22 files changed

+128
-41
lines changed

JetNews/app/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ dependencies {
9292

9393
implementation(libs.androidx.compose.animation)
9494
implementation(libs.androidx.compose.foundation.layout)
95-
implementation(libs.androidx.compose.material.iconsExtended)
9695
implementation(libs.androidx.compose.material3)
9796
implementation(libs.androidx.compose.materialWindow)
9897
implementation(libs.androidx.compose.runtime.livedata)

JetNews/app/src/main/java/com/example/jetnews/ui/AppDrawer.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ import androidx.compose.foundation.layout.Row
2121
import androidx.compose.foundation.layout.Spacer
2222
import androidx.compose.foundation.layout.padding
2323
import androidx.compose.foundation.layout.width
24-
import androidx.compose.material.icons.Icons
25-
import androidx.compose.material.icons.filled.Home
26-
import androidx.compose.material.icons.filled.ListAlt
2724
import androidx.compose.material3.DrawerState
2825
import androidx.compose.material3.DrawerValue
2926
import androidx.compose.material3.Icon
@@ -60,7 +57,7 @@ fun AppDrawer(
6057
)
6158
NavigationDrawerItem(
6259
label = { Text(stringResource(id = R.string.home_title)) },
63-
icon = { Icon(Icons.Filled.Home, null) },
60+
icon = { Icon(painterResource(R.drawable.ic_home), null) },
6461
selected = currentRoute == JetnewsDestinations.HOME_ROUTE,
6562
onClick = {
6663
navigateToHome()
@@ -70,7 +67,7 @@ fun AppDrawer(
7067
)
7168
NavigationDrawerItem(
7269
label = { Text(stringResource(id = R.string.interests_title)) },
73-
icon = { Icon(Icons.Filled.ListAlt, null) },
70+
icon = { Icon(painterResource(R.drawable.ic_list_alt), null) },
7471
selected = currentRoute == JetnewsDestinations.INTERESTS_ROUTE,
7572
onClick = {
7673
navigateToInterests()

JetNews/app/src/main/java/com/example/jetnews/ui/article/ArticleScreen.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ import androidx.compose.foundation.layout.size
2727
import androidx.compose.foundation.lazy.LazyListState
2828
import androidx.compose.foundation.lazy.rememberLazyListState
2929
import androidx.compose.foundation.shape.CircleShape
30-
import androidx.compose.material.icons.Icons
31-
import androidx.compose.material.icons.filled.ArrowBack
3230
import androidx.compose.material3.AlertDialog
3331
import androidx.compose.material3.BottomAppBar
3432
import androidx.compose.material3.CenterAlignedTopAppBar
@@ -75,7 +73,7 @@ import kotlinx.coroutines.runBlocking
7573
* @param showNavigationIcon (state) if the navigation icon should be shown
7674
* @param onBack (event) request navigate back
7775
* @param isFavorite (state) is this item currently a favorite
78-
* @param onToggleFavorite (event) request that this post toggle it's favorite state
76+
* @param onToggleFavorite (event) request that this post toggle its favorite state
7977
* @param lazyListState (state) the [LazyListState] for the article content
8078
*/
8179
@OptIn(ExperimentalMaterial3Api::class)
@@ -103,7 +101,7 @@ fun ArticleScreen(
103101
if (!isExpandedScreen) {
104102
IconButton(onClick = onBack) {
105103
Icon(
106-
imageVector = Icons.Filled.ArrowBack,
104+
painter = painterResource(R.drawable.ic_arrow_back),
107105
contentDescription = stringResource(R.string.cd_navigate_up),
108106
tint = MaterialTheme.colorScheme.primary,
109107
)

JetNews/app/src/main/java/com/example/jetnews/ui/article/PostContent.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ import androidx.compose.foundation.lazy.LazyListState
3636
import androidx.compose.foundation.lazy.items
3737
import androidx.compose.foundation.lazy.rememberLazyListState
3838
import androidx.compose.foundation.shape.CircleShape
39-
import androidx.compose.material.icons.Icons
40-
import androidx.compose.material.icons.filled.AccountCircle
4139
import androidx.compose.material3.ColorScheme
4240
import androidx.compose.material3.LocalContentColor
4341
import androidx.compose.material3.MaterialTheme
@@ -132,7 +130,7 @@ private fun PostMetadata(metadata: Metadata, modifier: Modifier = Modifier) {
132130
modifier = modifier.semantics(mergeDescendants = true) {},
133131
) {
134132
Image(
135-
imageVector = Icons.Filled.AccountCircle,
133+
painter = painterResource(id = R.drawable.ic_account_circle),
136134
contentDescription = null, // decorative
137135
modifier = Modifier.size(40.dp),
138136
colorFilter = ColorFilter.tint(LocalContentColor.current),

JetNews/app/src/main/java/com/example/jetnews/ui/components/AppNavRail.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@ package com.example.jetnews.ui.components
1919
import android.content.res.Configuration
2020
import androidx.compose.foundation.layout.Spacer
2121
import androidx.compose.foundation.layout.padding
22-
import androidx.compose.material.icons.Icons
23-
import androidx.compose.material.icons.filled.Home
24-
import androidx.compose.material.icons.filled.ListAlt
2522
import androidx.compose.material3.Icon
2623
import androidx.compose.material3.MaterialTheme
2724
import androidx.compose.material3.NavigationRail
@@ -54,14 +51,14 @@ fun AppNavRail(currentRoute: String, navigateToHome: () -> Unit, navigateToInter
5451
NavigationRailItem(
5552
selected = currentRoute == JetnewsDestinations.HOME_ROUTE,
5653
onClick = navigateToHome,
57-
icon = { Icon(Icons.Filled.Home, stringResource(R.string.home_title)) },
54+
icon = { Icon(painterResource(id = R.drawable.ic_home), stringResource(R.string.home_title)) },
5855
label = { Text(stringResource(R.string.home_title)) },
5956
alwaysShowLabel = false,
6057
)
6158
NavigationRailItem(
6259
selected = currentRoute == JetnewsDestinations.INTERESTS_ROUTE,
6360
onClick = navigateToInterests,
64-
icon = { Icon(Icons.Filled.ListAlt, stringResource(R.string.interests_title)) },
61+
icon = { Icon(painterResource(id = R.drawable.ic_list_alt), stringResource(R.string.interests_title)) },
6562
label = { Text(stringResource(R.string.interests_title)) },
6663
alwaysShowLabel = false,
6764
)

JetNews/app/src/main/java/com/example/jetnews/ui/home/HomeScreens.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,6 @@ import androidx.compose.foundation.rememberScrollState
4848
import androidx.compose.foundation.shape.RoundedCornerShape
4949
import androidx.compose.foundation.text.KeyboardActions
5050
import androidx.compose.foundation.text.KeyboardOptions
51-
import androidx.compose.material.icons.Icons
52-
import androidx.compose.material.icons.filled.Search
5351
import androidx.compose.material3.CenterAlignedTopAppBar
5452
import androidx.compose.material3.CircularProgressIndicator
5553
import androidx.compose.material3.ExperimentalMaterial3Api
@@ -612,7 +610,7 @@ private fun HomeSearch(modifier: Modifier = Modifier, searchInput: String = "",
612610
value = searchInput,
613611
onValueChange = onSearchInputChanged,
614612
placeholder = { Text(stringResource(R.string.home_search)) },
615-
leadingIcon = { Icon(Icons.Filled.Search, null) },
613+
leadingIcon = { Icon(painter = painterResource(R.drawable.ic_search), contentDescription = null) },
616614
modifier = modifier
617615
.fillMaxWidth()
618616
.interceptKey(Key.Enter) {
@@ -706,7 +704,7 @@ private fun HomeTopAppBar(
706704
).show()
707705
}) {
708706
Icon(
709-
imageVector = Icons.Filled.Search,
707+
painter = painterResource(R.drawable.ic_search),
710708
contentDescription = stringResource(R.string.cd_search),
711709
)
712710
}

JetNews/app/src/main/java/com/example/jetnews/ui/home/PostCards.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ import androidx.compose.foundation.layout.Column
2323
import androidx.compose.foundation.layout.Row
2424
import androidx.compose.foundation.layout.padding
2525
import androidx.compose.foundation.layout.size
26-
import androidx.compose.material.icons.Icons
27-
import androidx.compose.material.icons.filled.MoreVert
2826
import androidx.compose.material3.AlertDialog
2927
import androidx.compose.material3.Icon
3028
import androidx.compose.material3.IconButton
@@ -160,7 +158,7 @@ fun PostCardHistory(post: Post, navigateToArticle: (String) -> Unit) {
160158
}
161159
IconButton(onClick = { openDialog = true }) {
162160
Icon(
163-
imageVector = Icons.Filled.MoreVert,
161+
painter = painterResource(R.drawable.ic_more_vert),
164162
contentDescription = stringResource(R.string.cd_more_actions),
165163
)
166164
}

JetNews/app/src/main/java/com/example/jetnews/ui/interests/InterestsScreen.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ import androidx.compose.foundation.rememberScrollState
3535
import androidx.compose.foundation.selection.toggleable
3636
import androidx.compose.foundation.shape.RoundedCornerShape
3737
import androidx.compose.foundation.verticalScroll
38-
import androidx.compose.material.icons.Icons
39-
import androidx.compose.material.icons.filled.Search
4038
import androidx.compose.material3.CenterAlignedTopAppBar
4139
import androidx.compose.material3.ExperimentalMaterial3Api
4240
import androidx.compose.material3.HorizontalDivider
@@ -155,7 +153,7 @@ fun InterestsScreen(
155153
},
156154
) {
157155
Icon(
158-
imageVector = Icons.Filled.Search,
156+
painter = painterResource(R.drawable.ic_search),
159157
contentDescription = stringResource(R.string.cd_search),
160158
)
161159
}

JetNews/app/src/main/java/com/example/jetnews/ui/interests/SelectTopicButton.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,20 @@ import androidx.compose.foundation.Image
2222
import androidx.compose.foundation.layout.padding
2323
import androidx.compose.foundation.layout.size
2424
import androidx.compose.foundation.shape.CircleShape
25-
import androidx.compose.material.icons.Icons
26-
import androidx.compose.material.icons.filled.Add
27-
import androidx.compose.material.icons.filled.Done
2825
import androidx.compose.material3.MaterialTheme
2926
import androidx.compose.material3.Surface
3027
import androidx.compose.runtime.Composable
3128
import androidx.compose.ui.Modifier
3229
import androidx.compose.ui.graphics.ColorFilter
30+
import androidx.compose.ui.res.painterResource
3331
import androidx.compose.ui.tooling.preview.Preview
3432
import androidx.compose.ui.unit.dp
33+
import com.example.jetnews.R
3534
import com.example.jetnews.ui.theme.JetnewsTheme
3635

3736
@Composable
3837
fun SelectTopicButton(modifier: Modifier = Modifier, selected: Boolean = false) {
39-
val icon = if (selected) Icons.Filled.Done else Icons.Filled.Add
38+
val icon = if (selected) painterResource(R.drawable.ic_check) else painterResource(R.drawable.ic_add)
4039
val iconColor = if (selected) {
4140
MaterialTheme.colorScheme.onPrimary
4241
} else {
@@ -59,7 +58,7 @@ fun SelectTopicButton(modifier: Modifier = Modifier, selected: Boolean = false)
5958
modifier = modifier.size(36.dp, 36.dp),
6059
) {
6160
Image(
62-
imageVector = icon,
61+
painter = icon,
6362
colorFilter = ColorFilter.tint(iconColor),
6463
modifier = Modifier.padding(8.dp),
6564
contentDescription = null, // toggleable at higher level

JetNews/app/src/main/java/com/example/jetnews/ui/utils/JetnewsIcons.kt

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,6 @@
1616

1717
package com.example.jetnews.ui.utils
1818

19-
import androidx.compose.material.icons.Icons
20-
import androidx.compose.material.icons.filled.Bookmark
21-
import androidx.compose.material.icons.filled.BookmarkBorder
22-
import androidx.compose.material.icons.filled.Share
23-
import androidx.compose.material.icons.filled.ThumbUpOffAlt
2419
import androidx.compose.material3.Icon
2520
import androidx.compose.material3.IconButton
2621
import androidx.compose.material3.IconToggleButton
@@ -36,7 +31,7 @@ import com.example.jetnews.R
3631
fun FavoriteButton(onClick: () -> Unit) {
3732
IconButton(onClick) {
3833
Icon(
39-
imageVector = Icons.Filled.ThumbUpOffAlt,
34+
painter = painterResource(R.drawable.ic_thumb_up),
4035
contentDescription = stringResource(R.string.cd_add_to_favorites),
4136
)
4237
}
@@ -57,7 +52,7 @@ fun BookmarkButton(isBookmarked: Boolean, onClick: () -> Unit, modifier: Modifie
5752
},
5853
) {
5954
Icon(
60-
imageVector = if (isBookmarked) Icons.Filled.Bookmark else Icons.Filled.BookmarkBorder,
55+
painter = if (isBookmarked) painterResource(R.drawable.ic_bookmark) else painterResource(R.drawable.ic_bookmark_outline),
6156
contentDescription = null, // handled by click label of parent
6257
)
6358
}
@@ -67,7 +62,7 @@ fun BookmarkButton(isBookmarked: Boolean, onClick: () -> Unit, modifier: Modifie
6762
fun ShareButton(onClick: () -> Unit) {
6863
IconButton(onClick) {
6964
Icon(
70-
imageVector = Icons.Filled.Share,
65+
painter = painterResource(R.drawable.ic_share),
7166
contentDescription = stringResource(R.string.cd_share),
7267
)
7368
}

0 commit comments

Comments
 (0)