diff --git a/app/src/main/java/dev/msfjarvis/lobsters/ui/main/MainActivity.kt b/app/src/main/java/dev/msfjarvis/lobsters/ui/main/MainActivity.kt
index 31c8f9c3..414f8dde 100644
--- a/app/src/main/java/dev/msfjarvis/lobsters/ui/main/MainActivity.kt
+++ b/app/src/main/java/dev/msfjarvis/lobsters/ui/main/MainActivity.kt
@@ -106,7 +106,12 @@ fun LobstersBottomNav(
navBackStackEntry?.arguments?.getString(KEY_ROUTE) ?: Destination.startDestination.route
Destination.values().forEach { screen ->
BottomNavigationItem(
- icon = { IconResource(resourceId = screen.badgeRes) },
+ icon = {
+ IconResource(
+ resourceId = screen.badgeRes,
+ contentDescription = stringResource(screen.labelRes),
+ )
+ },
label = { Text(stringResource(id = screen.labelRes)) },
selected = currentRoute == screen.route,
alwaysShowLabels = false,
diff --git a/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/EmptyList.kt b/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/EmptyList.kt
index 71c2352b..d1e20809 100644
--- a/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/EmptyList.kt
+++ b/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/EmptyList.kt
@@ -25,11 +25,16 @@ fun EmptyList(saved: Boolean) {
IconResource(
R.drawable.ic_favorite_border_24px,
tint = Color(0xFFD97373),
- modifier = Modifier.padding(16.dp)
+ modifier = Modifier.padding(16.dp),
+ contentDescription = stringResource(R.string.add_to_saved_posts),
)
Text(stringResource(R.string.no_saved_posts))
} else {
- IconResource(R.drawable.ic_sync_problem_24px, modifier = Modifier.padding(16.dp))
+ IconResource(
+ R.drawable.ic_sync_problem_24px,
+ modifier = Modifier.padding(16.dp),
+ contentDescription = stringResource(R.string.remove_from_saved_posts),
+ )
Text(stringResource(R.string.loading))
}
}
diff --git a/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/LobstersItem.kt b/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/LobstersItem.kt
index 2f1736c7..2f434064 100644
--- a/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/LobstersItem.kt
+++ b/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/LobstersItem.kt
@@ -10,6 +10,7 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.IconToggleButton
import androidx.compose.material.Surface
@@ -132,9 +133,17 @@ fun LobstersItem(
) {
Crossfade(current = isSaved) {
if (it) {
- IconResource(resourceId = R.drawable.ic_favorite_24px, tint = Color(0xFFD97373))
+ IconResource(
+ resourceId = R.drawable.ic_favorite_24px,
+ tint = Color(0xFFD97373),
+ contentDescription = stringResource(R.string.remove_from_saved_posts),
+ )
} else {
- IconResource(resourceId = R.drawable.ic_favorite_border_24px, tint = Color(0xFFD97373))
+ IconResource(
+ resourceId = R.drawable.ic_favorite_border_24px,
+ tint = Color(0xFFD97373),
+ contentDescription = stringResource(R.string.add_to_saved_posts),
+ )
}
}
}
diff --git a/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/SavedPosts.kt b/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/SavedPosts.kt
index deb275a5..7ad26843 100644
--- a/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/SavedPosts.kt
+++ b/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/SavedPosts.kt
@@ -1,6 +1,7 @@
package dev.msfjarvis.lobsters.ui.posts
import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
diff --git a/app/src/main/java/dev/msfjarvis/lobsters/util/DeferredIcon.kt b/app/src/main/java/dev/msfjarvis/lobsters/util/DeferredIcon.kt
index 3df5bf6d..887c18f7 100644
--- a/app/src/main/java/dev/msfjarvis/lobsters/util/DeferredIcon.kt
+++ b/app/src/main/java/dev/msfjarvis/lobsters/util/DeferredIcon.kt
@@ -27,12 +27,18 @@ import androidx.compose.ui.res.loadVectorResource
@Composable
fun IconResource(
@DrawableRes resourceId: Int,
+ contentDescription: String,
modifier: Modifier = Modifier,
tint: Color = AmbientContentColor.current
) {
val deferredResource = loadVectorResource(resourceId)
deferredResource.onLoadRun { vector ->
- Icon(imageVector = vector, modifier = modifier, tint = tint)
+ Icon(
+ imageVector = vector,
+ modifier = modifier,
+ tint = tint,
+ contentDescription = contentDescription,
+ )
}
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 1d52480b..ada50823 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -5,4 +5,6 @@
Hottest
Saved
submitted by %1$s
+ Add to saved posts
+ Remove from saved posts
diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt
index 2548c564..b0f04052 100644
--- a/buildSrc/src/main/java/Dependencies.kt
+++ b/buildSrc/src/main/java/Dependencies.kt
@@ -15,7 +15,7 @@ object Plugins {
}
object Dependencies {
- const val COMPOSE_VERSION = "1.0.0-alpha10"
+ const val COMPOSE_VERSION = "1.0.0-alpha11"
object Kotlin {