103: Dependency updates r=msfjarvis a=msfjarvis

bors r+

Co-authored-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
bors[bot] 2021-02-08 08:45:46 +00:00 committed by GitHub
commit 2b39717cab
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 55 additions and 18 deletions

View file

@ -4,10 +4,10 @@ import dev.msfjarvis.lobsters.injection.ApiModule
import dev.msfjarvis.lobsters.injection.MoshiModule import dev.msfjarvis.lobsters.injection.MoshiModule
import dev.msfjarvis.lobsters.util.TestUtils import dev.msfjarvis.lobsters.util.TestUtils
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
import okhttp3.mockwebserver.Dispatcher import mockwebserver3.Dispatcher
import okhttp3.mockwebserver.MockResponse import mockwebserver3.MockResponse
import okhttp3.mockwebserver.MockWebServer import mockwebserver3.MockWebServer
import okhttp3.mockwebserver.RecordedRequest import mockwebserver3.RecordedRequest
import org.junit.AfterClass import org.junit.AfterClass
import org.junit.Assert.assertEquals import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue import org.junit.Assert.assertTrue

View file

@ -1,6 +1,7 @@
package dev.msfjarvis.lobsters.data.remote package dev.msfjarvis.lobsters.data.remote
import androidx.paging.PagingSource import androidx.paging.PagingSource
import androidx.paging.PagingState
import dev.msfjarvis.lobsters.data.local.LobstersPost import dev.msfjarvis.lobsters.data.local.LobstersPost
import dev.msfjarvis.lobsters.data.repo.LobstersRepository import dev.msfjarvis.lobsters.data.repo.LobstersRepository
import javax.inject.Inject import javax.inject.Inject
@ -26,4 +27,8 @@ class LobstersPagingSource @Inject constructor(
LoadResult.Error(e) LoadResult.Error(e)
} }
} }
override fun getRefreshKey(state: PagingState<Int, LobstersPost>): Int {
return state.pages.size + 1
}
} }

View file

@ -106,7 +106,12 @@ fun LobstersBottomNav(
navBackStackEntry?.arguments?.getString(KEY_ROUTE) ?: Destination.startDestination.route navBackStackEntry?.arguments?.getString(KEY_ROUTE) ?: Destination.startDestination.route
Destination.values().forEach { screen -> Destination.values().forEach { screen ->
BottomNavigationItem( BottomNavigationItem(
icon = { IconResource(resourceId = screen.badgeRes) }, icon = {
IconResource(
resourceId = screen.badgeRes,
contentDescription = stringResource(screen.labelRes),
)
},
label = { Text(stringResource(id = screen.labelRes)) }, label = { Text(stringResource(id = screen.labelRes)) },
selected = currentRoute == screen.route, selected = currentRoute == screen.route,
alwaysShowLabels = false, alwaysShowLabels = false,

View file

@ -25,11 +25,16 @@ fun EmptyList(saved: Boolean) {
IconResource( IconResource(
R.drawable.ic_favorite_border_24px, R.drawable.ic_favorite_border_24px,
tint = Color(0xFFD97373), 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)) Text(stringResource(R.string.no_saved_posts))
} else { } 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)) Text(stringResource(R.string.loading))
} }
} }

View file

@ -10,6 +10,7 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.IconToggleButton import androidx.compose.material.IconToggleButton
import androidx.compose.material.Surface import androidx.compose.material.Surface
@ -99,6 +100,10 @@ fun LobstersItem(
) )
CoilImage( CoilImage(
data = "${LobstersApi.BASE_URL}/${post.submitter_user.avatarUrl}", data = "${LobstersApi.BASE_URL}/${post.submitter_user.avatarUrl}",
contentDescription = stringResource(
R.string.avatar_content_description,
post.submitter_user.username
),
fadeIn = true, fadeIn = true,
requestBuilder = { requestBuilder = {
transformations(CircleCropTransformation()) transformations(CircleCropTransformation())
@ -132,9 +137,17 @@ fun LobstersItem(
) { ) {
Crossfade(current = isSaved) { Crossfade(current = isSaved) {
if (it) { 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 { } 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),
)
} }
} }
} }

View file

@ -1,6 +1,7 @@
package dev.msfjarvis.lobsters.ui.posts package dev.msfjarvis.lobsters.ui.posts
import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier

View file

@ -27,12 +27,18 @@ import androidx.compose.ui.res.loadVectorResource
@Composable @Composable
fun IconResource( fun IconResource(
@DrawableRes resourceId: Int, @DrawableRes resourceId: Int,
contentDescription: String,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
tint: Color = AmbientContentColor.current tint: Color = AmbientContentColor.current
) { ) {
val deferredResource = loadVectorResource(resourceId) val deferredResource = loadVectorResource(resourceId)
deferredResource.onLoadRun { vector -> deferredResource.onLoadRun { vector ->
Icon(imageVector = vector, modifier = modifier, tint = tint) Icon(
imageVector = vector,
modifier = modifier,
tint = tint,
contentDescription = contentDescription,
)
} }
} }

View file

@ -5,4 +5,7 @@
<string name="hottest_posts">Hottest</string> <string name="hottest_posts">Hottest</string>
<string name="saved_posts">Saved</string> <string name="saved_posts">Saved</string>
<string name="submitted_by">submitted by %1$s</string> <string name="submitted_by">submitted by %1$s</string>
<string name="avatar_content_description">%1$s\'s avatar</string>
<string name="add_to_saved_posts">Add to saved posts</string>
<string name="remove_from_saved_posts">Remove from saved posts</string>
</resources> </resources>

View file

@ -1,4 +1,3 @@
plugins { plugins {
id("com.github.ben-manes.versions") version "0.36.0"
`lobsters-plugin` `lobsters-plugin`
} }

View file

@ -9,13 +9,13 @@ object Plugins {
const val androidGradlePlugin = "com.android.tools.build:gradle:7.0.0-alpha05" const val androidGradlePlugin = "com.android.tools.build:gradle:7.0.0-alpha05"
const val androidGradlePlugin_lintModel = "com.android.tools.lint:lint-model:30.0.0-alpha05" const val androidGradlePlugin_lintModel = "com.android.tools.lint:lint-model:30.0.0-alpha05"
const val daggerGradlePlugin = "com.google.dagger:hilt-android-gradle-plugin:${DAGGER_HILT_VERSION}" const val daggerGradlePlugin = "com.google.dagger:hilt-android-gradle-plugin:${DAGGER_HILT_VERSION}"
const val kotlinGradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.21" const val kotlinGradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.21-2"
const val jsemver = "com.github.zafarkhaja:java-semver:0.9.0" const val jsemver = "com.github.zafarkhaja:java-semver:0.9.0"
const val sqldelightGradlePlugin = "com.squareup.sqldelight:gradle-plugin:1.4.4" const val sqldelightGradlePlugin = "com.squareup.sqldelight:gradle-plugin:1.4.4"
} }
object Dependencies { object Dependencies {
const val COMPOSE_VERSION = "1.0.0-alpha10" const val COMPOSE_VERSION = "1.0.0-alpha11"
object Kotlin { object Kotlin {
@ -39,8 +39,8 @@ object Dependencies {
const val foundation = "androidx.compose.foundation:foundation:$COMPOSE_VERSION" const val foundation = "androidx.compose.foundation:foundation:$COMPOSE_VERSION"
const val foundationLayout = "androidx.compose.foundation:foundation-layout:$COMPOSE_VERSION" const val foundationLayout = "androidx.compose.foundation:foundation-layout:$COMPOSE_VERSION"
const val material = "androidx.compose.material:material:$COMPOSE_VERSION" const val material = "androidx.compose.material:material:$COMPOSE_VERSION"
const val navigation = "androidx.navigation:navigation-compose:1.0.0-alpha05" const val navigation = "androidx.navigation:navigation-compose:1.0.0-alpha06"
const val paging = "androidx.paging:paging-compose:1.0.0-alpha05" const val paging = "androidx.paging:paging-compose:1.0.0-alpha06"
const val runtime = "androidx.compose.runtime:runtime:$COMPOSE_VERSION" const val runtime = "androidx.compose.runtime:runtime:$COMPOSE_VERSION"
const val ui = "androidx.compose.ui:ui:$COMPOSE_VERSION" const val ui = "androidx.compose.ui:ui:$COMPOSE_VERSION"
const val uiUnit = "androidx.compose.ui:ui-unit:$COMPOSE_VERSION" const val uiUnit = "androidx.compose.ui:ui-unit:$COMPOSE_VERSION"
@ -62,13 +62,13 @@ object Dependencies {
object ThirdParty { object ThirdParty {
const val accompanist = "dev.chrisbanes.accompanist:accompanist-coil:0.4.2" const val accompanist = "dev.chrisbanes.accompanist:accompanist-coil:0.5.0"
object Moshi { object Moshi {
private const val version = "1.11.0" private const val version = "1.11.0"
const val lib = "com.squareup.moshi:moshi:$version" const val lib = "com.squareup.moshi:moshi:$version"
const val moshiMetadataReflect = "dev.zacsweers.moshix:moshi-metadata-reflect:0.7.1" const val moshiMetadataReflect = "dev.zacsweers.moshix:moshi-metadata-reflect:0.8.0"
} }
object Retrofit { object Retrofit {
@ -90,7 +90,7 @@ object Dependencies {
const val daggerHilt = "com.google.dagger:hilt-android-testing:$DAGGER_HILT_VERSION" const val daggerHilt = "com.google.dagger:hilt-android-testing:$DAGGER_HILT_VERSION"
const val junit = "junit:junit:4.13.1" const val junit = "junit:junit:4.13.1"
const val mockWebServer = "com.squareup.okhttp3:mockwebserver:4.6.0" const val mockWebServer = "com.squareup.okhttp3:mockwebserver3-junit4:5.0.0-alpha.2"
const val uiTest = "androidx.compose.ui:ui-test:$COMPOSE_VERSION" const val uiTest = "androidx.compose.ui:ui-test:$COMPOSE_VERSION"
object AndroidX { object AndroidX {