diff --git a/JetNews/app/build.gradle.kts b/JetNews/app/build.gradle.kts index b3bec47c84..ed68fa47f2 100644 --- a/JetNews/app/build.gradle.kts +++ b/JetNews/app/build.gradle.kts @@ -92,7 +92,6 @@ dependencies { implementation(libs.androidx.compose.animation) implementation(libs.androidx.compose.foundation.layout) - implementation(libs.androidx.compose.material.iconsExtended) implementation(libs.androidx.compose.material3) implementation(libs.androidx.compose.materialWindow) implementation(libs.androidx.compose.runtime.livedata) diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/AppDrawer.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/AppDrawer.kt index e88723c606..9acf45b8f6 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/AppDrawer.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/AppDrawer.kt @@ -21,9 +21,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Home -import androidx.compose.material.icons.filled.ListAlt import androidx.compose.material3.DrawerState import androidx.compose.material3.DrawerValue import androidx.compose.material3.Icon @@ -60,7 +57,7 @@ fun AppDrawer( ) NavigationDrawerItem( label = { Text(stringResource(id = R.string.home_title)) }, - icon = { Icon(Icons.Filled.Home, null) }, + icon = { Icon(painterResource(R.drawable.ic_home), null) }, selected = currentRoute == JetnewsDestinations.HOME_ROUTE, onClick = { navigateToHome() @@ -70,7 +67,7 @@ fun AppDrawer( ) NavigationDrawerItem( label = { Text(stringResource(id = R.string.interests_title)) }, - icon = { Icon(Icons.Filled.ListAlt, null) }, + icon = { Icon(painterResource(R.drawable.ic_list_alt), null) }, selected = currentRoute == JetnewsDestinations.INTERESTS_ROUTE, onClick = { navigateToInterests() 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 34347e284c..4dbd4c8bc8 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 @@ -27,8 +27,6 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.ArrowBack import androidx.compose.material3.AlertDialog import androidx.compose.material3.BottomAppBar import androidx.compose.material3.CenterAlignedTopAppBar @@ -75,7 +73,7 @@ import kotlinx.coroutines.runBlocking * @param showNavigationIcon (state) if the navigation icon should be shown * @param onBack (event) request navigate back * @param isFavorite (state) is this item currently a favorite - * @param onToggleFavorite (event) request that this post toggle it's favorite state + * @param onToggleFavorite (event) request that this post toggle its favorite state * @param lazyListState (state) the [LazyListState] for the article content */ @OptIn(ExperimentalMaterial3Api::class) @@ -103,7 +101,7 @@ fun ArticleScreen( if (!isExpandedScreen) { IconButton(onClick = onBack) { Icon( - imageVector = Icons.Filled.ArrowBack, + painter = painterResource(R.drawable.ic_arrow_back), contentDescription = stringResource(R.string.cd_navigate_up), tint = MaterialTheme.colorScheme.primary, ) diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/article/PostContent.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/article/PostContent.kt index 9ef99241fc..88f273112e 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/article/PostContent.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/article/PostContent.kt @@ -36,8 +36,6 @@ import androidx.compose.foundation.lazy.LazyListState import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.AccountCircle import androidx.compose.material3.ColorScheme import androidx.compose.material3.LocalContentColor import androidx.compose.material3.MaterialTheme @@ -132,7 +130,7 @@ private fun PostMetadata(metadata: Metadata, modifier: Modifier = Modifier) { modifier = modifier.semantics(mergeDescendants = true) {}, ) { Image( - imageVector = Icons.Filled.AccountCircle, + painter = painterResource(id = R.drawable.ic_account_circle), contentDescription = null, // decorative modifier = Modifier.size(40.dp), colorFilter = ColorFilter.tint(LocalContentColor.current), diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/components/AppNavRail.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/components/AppNavRail.kt index d0395767bf..b6d48e74f2 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/components/AppNavRail.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/components/AppNavRail.kt @@ -19,9 +19,6 @@ package com.example.jetnews.ui.components import android.content.res.Configuration import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.padding -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Home -import androidx.compose.material.icons.filled.ListAlt import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.NavigationRail @@ -54,14 +51,14 @@ fun AppNavRail(currentRoute: String, navigateToHome: () -> Unit, navigateToInter NavigationRailItem( selected = currentRoute == JetnewsDestinations.HOME_ROUTE, onClick = navigateToHome, - icon = { Icon(Icons.Filled.Home, stringResource(R.string.home_title)) }, + icon = { Icon(painterResource(id = R.drawable.ic_home), stringResource(R.string.home_title)) }, label = { Text(stringResource(R.string.home_title)) }, alwaysShowLabel = false, ) NavigationRailItem( selected = currentRoute == JetnewsDestinations.INTERESTS_ROUTE, onClick = navigateToInterests, - icon = { Icon(Icons.Filled.ListAlt, stringResource(R.string.interests_title)) }, + icon = { Icon(painterResource(id = R.drawable.ic_list_alt), stringResource(R.string.interests_title)) }, label = { Text(stringResource(R.string.interests_title)) }, alwaysShowLabel = false, ) diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/home/HomeScreens.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/home/HomeScreens.kt index 4d97538b65..a46da2d96f 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/home/HomeScreens.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/home/HomeScreens.kt @@ -48,8 +48,6 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Search import androidx.compose.material3.CenterAlignedTopAppBar import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api @@ -612,7 +610,7 @@ private fun HomeSearch(modifier: Modifier = Modifier, searchInput: String = "", value = searchInput, onValueChange = onSearchInputChanged, placeholder = { Text(stringResource(R.string.home_search)) }, - leadingIcon = { Icon(Icons.Filled.Search, null) }, + leadingIcon = { Icon(painter = painterResource(R.drawable.ic_search), contentDescription = null) }, modifier = modifier .fillMaxWidth() .interceptKey(Key.Enter) { @@ -706,7 +704,7 @@ private fun HomeTopAppBar( ).show() }) { Icon( - imageVector = Icons.Filled.Search, + painter = painterResource(R.drawable.ic_search), contentDescription = stringResource(R.string.cd_search), ) } diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/home/PostCards.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/home/PostCards.kt index 6fc651a3ff..69e94115a1 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/home/PostCards.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/home/PostCards.kt @@ -23,8 +23,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.MoreVert import androidx.compose.material3.AlertDialog import androidx.compose.material3.Icon import androidx.compose.material3.IconButton @@ -160,7 +158,7 @@ fun PostCardHistory(post: Post, navigateToArticle: (String) -> Unit) { } IconButton(onClick = { openDialog = true }) { Icon( - imageVector = Icons.Filled.MoreVert, + painter = painterResource(R.drawable.ic_more_vert), contentDescription = stringResource(R.string.cd_more_actions), ) } 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 3cf59e2ebf..db72afa378 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 @@ -35,8 +35,6 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.selection.toggleable import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Search import androidx.compose.material3.CenterAlignedTopAppBar import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.HorizontalDivider @@ -155,7 +153,7 @@ fun InterestsScreen( }, ) { Icon( - imageVector = Icons.Filled.Search, + painter = painterResource(R.drawable.ic_search), contentDescription = stringResource(R.string.cd_search), ) } diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/interests/SelectTopicButton.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/interests/SelectTopicButton.kt index ae670e3304..bdfa83c63c 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/interests/SelectTopicButton.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/interests/SelectTopicButton.kt @@ -22,21 +22,20 @@ import androidx.compose.foundation.Image import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Add -import androidx.compose.material.icons.filled.Done import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.ColorFilter +import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import com.example.jetnews.R import com.example.jetnews.ui.theme.JetnewsTheme @Composable fun SelectTopicButton(modifier: Modifier = Modifier, selected: Boolean = false) { - val icon = if (selected) Icons.Filled.Done else Icons.Filled.Add + val icon = if (selected) painterResource(R.drawable.ic_check) else painterResource(R.drawable.ic_add) val iconColor = if (selected) { MaterialTheme.colorScheme.onPrimary } else { @@ -59,7 +58,7 @@ fun SelectTopicButton(modifier: Modifier = Modifier, selected: Boolean = false) modifier = modifier.size(36.dp, 36.dp), ) { Image( - imageVector = icon, + painter = icon, colorFilter = ColorFilter.tint(iconColor), modifier = Modifier.padding(8.dp), contentDescription = null, // toggleable at higher level diff --git a/JetNews/app/src/main/java/com/example/jetnews/ui/utils/JetnewsIcons.kt b/JetNews/app/src/main/java/com/example/jetnews/ui/utils/JetnewsIcons.kt index 1374588293..14df0ec247 100644 --- a/JetNews/app/src/main/java/com/example/jetnews/ui/utils/JetnewsIcons.kt +++ b/JetNews/app/src/main/java/com/example/jetnews/ui/utils/JetnewsIcons.kt @@ -16,11 +16,6 @@ package com.example.jetnews.ui.utils -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Bookmark -import androidx.compose.material.icons.filled.BookmarkBorder -import androidx.compose.material.icons.filled.Share -import androidx.compose.material.icons.filled.ThumbUpOffAlt import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.IconToggleButton @@ -36,7 +31,7 @@ import com.example.jetnews.R fun FavoriteButton(onClick: () -> Unit) { IconButton(onClick) { Icon( - imageVector = Icons.Filled.ThumbUpOffAlt, + painter = painterResource(R.drawable.ic_thumb_up), contentDescription = stringResource(R.string.cd_add_to_favorites), ) } @@ -57,7 +52,7 @@ fun BookmarkButton(isBookmarked: Boolean, onClick: () -> Unit, modifier: Modifie }, ) { Icon( - imageVector = if (isBookmarked) Icons.Filled.Bookmark else Icons.Filled.BookmarkBorder, + painter = if (isBookmarked) painterResource(R.drawable.ic_bookmark) else painterResource(R.drawable.ic_bookmark_outline), contentDescription = null, // handled by click label of parent ) } @@ -67,7 +62,7 @@ fun BookmarkButton(isBookmarked: Boolean, onClick: () -> Unit, modifier: Modifie fun ShareButton(onClick: () -> Unit) { IconButton(onClick) { Icon( - imageVector = Icons.Filled.Share, + painter = painterResource(R.drawable.ic_share), contentDescription = stringResource(R.string.cd_share), ) } diff --git a/JetNews/app/src/main/res/drawable/ic_account_circle.xml b/JetNews/app/src/main/res/drawable/ic_account_circle.xml new file mode 100644 index 0000000000..67542bfa21 --- /dev/null +++ b/JetNews/app/src/main/res/drawable/ic_account_circle.xml @@ -0,0 +1,9 @@ + + + diff --git a/JetNews/app/src/main/res/drawable/ic_add.xml b/JetNews/app/src/main/res/drawable/ic_add.xml new file mode 100644 index 0000000000..2fcde96c96 --- /dev/null +++ b/JetNews/app/src/main/res/drawable/ic_add.xml @@ -0,0 +1,9 @@ + + + diff --git a/JetNews/app/src/main/res/drawable/ic_arrow_back.xml b/JetNews/app/src/main/res/drawable/ic_arrow_back.xml new file mode 100644 index 0000000000..800941dba5 --- /dev/null +++ b/JetNews/app/src/main/res/drawable/ic_arrow_back.xml @@ -0,0 +1,10 @@ + + + diff --git a/JetNews/app/src/main/res/drawable/ic_bookmark.xml b/JetNews/app/src/main/res/drawable/ic_bookmark.xml new file mode 100644 index 0000000000..4fa4617a0f --- /dev/null +++ b/JetNews/app/src/main/res/drawable/ic_bookmark.xml @@ -0,0 +1,9 @@ + + + diff --git a/JetNews/app/src/main/res/drawable/ic_bookmark_outline.xml b/JetNews/app/src/main/res/drawable/ic_bookmark_outline.xml new file mode 100644 index 0000000000..6ae4b41fc2 --- /dev/null +++ b/JetNews/app/src/main/res/drawable/ic_bookmark_outline.xml @@ -0,0 +1,9 @@ + + + diff --git a/JetNews/app/src/main/res/drawable/ic_check.xml b/JetNews/app/src/main/res/drawable/ic_check.xml new file mode 100644 index 0000000000..6f1fcce828 --- /dev/null +++ b/JetNews/app/src/main/res/drawable/ic_check.xml @@ -0,0 +1,9 @@ + + + diff --git a/JetNews/app/src/main/res/drawable/ic_home.xml b/JetNews/app/src/main/res/drawable/ic_home.xml new file mode 100644 index 0000000000..9ef27eace1 --- /dev/null +++ b/JetNews/app/src/main/res/drawable/ic_home.xml @@ -0,0 +1,9 @@ + + + diff --git a/JetNews/app/src/main/res/drawable/ic_list_alt.xml b/JetNews/app/src/main/res/drawable/ic_list_alt.xml new file mode 100644 index 0000000000..6da9b0852c --- /dev/null +++ b/JetNews/app/src/main/res/drawable/ic_list_alt.xml @@ -0,0 +1,10 @@ + + + diff --git a/JetNews/app/src/main/res/drawable/ic_more_vert.xml b/JetNews/app/src/main/res/drawable/ic_more_vert.xml new file mode 100644 index 0000000000..59400ec977 --- /dev/null +++ b/JetNews/app/src/main/res/drawable/ic_more_vert.xml @@ -0,0 +1,9 @@ + + + diff --git a/JetNews/app/src/main/res/drawable/ic_search.xml b/JetNews/app/src/main/res/drawable/ic_search.xml new file mode 100644 index 0000000000..20c7b4e734 --- /dev/null +++ b/JetNews/app/src/main/res/drawable/ic_search.xml @@ -0,0 +1,9 @@ + + + diff --git a/JetNews/app/src/main/res/drawable/ic_share.xml b/JetNews/app/src/main/res/drawable/ic_share.xml new file mode 100644 index 0000000000..afb4d89e6f --- /dev/null +++ b/JetNews/app/src/main/res/drawable/ic_share.xml @@ -0,0 +1,9 @@ + + + diff --git a/JetNews/app/src/main/res/drawable/ic_thumb_up.xml b/JetNews/app/src/main/res/drawable/ic_thumb_up.xml new file mode 100644 index 0000000000..18fed03ab2 --- /dev/null +++ b/JetNews/app/src/main/res/drawable/ic_thumb_up.xml @@ -0,0 +1,9 @@ + + +