Skip to content

Commit 769f24f

Browse files
Update icons and remove material icons dependency
This commit replaces the Material Icons dependency with local drawable resources for all icons used in the JetNews sample.
1 parent b1ef44c commit 769f24f

22 files changed

+140
-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 it\'s 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)