diff --git a/app/build.gradle b/app/build.gradle index cdfee333..0c6a3524 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,6 +84,7 @@ dependencies { implementation "androidx.ui:ui-tooling:$compose_version" implementation "com.google.android.material:material:$material_version" implementation "com.google.dagger:hilt-android:$hilt_dagger_version" + implementation "dev.chrisbanes.accompanist:accompanist-coil:$accompanist_version" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version" implementation "saschpe.android:customtabs:$customtabs_version" androidTestImplementation "com.google.dagger:hilt-android-testing:$hilt_dagger_version" diff --git a/app/src/main/java/dev/msfjarvis/lobsters/di/ApiModule.kt b/app/src/main/java/dev/msfjarvis/lobsters/di/ApiModule.kt index bbfcf5ac..dfa1042a 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/di/ApiModule.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/di/ApiModule.kt @@ -10,8 +10,9 @@ import dev.msfjarvis.lobsters.api.LobstersApi @InstallIn(ActivityComponent::class) @Module object ApiModule { + const val LOBSTERS_URL = "https://lobste.rs" @Provides fun provideLobstersApi(): LobstersApi { - return ApiClient.getClient("https://lobste.rs") + return ApiClient.getClient(LOBSTERS_URL) } } diff --git a/app/src/main/java/dev/msfjarvis/lobsters/ui/LobstersItem.kt b/app/src/main/java/dev/msfjarvis/lobsters/ui/LobstersItem.kt index 374a1e3b..4dcf72a4 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/ui/LobstersItem.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/ui/LobstersItem.kt @@ -9,15 +9,21 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.lazy.LazyColumnFor import androidx.compose.foundation.lazy.LazyItemScope import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.ui.tooling.preview.Preview +import coil.transform.CircleCropTransformation +import dev.chrisbanes.accompanist.coil.CoilImage +import dev.msfjarvis.lobsters.di.ApiModule import dev.msfjarvis.lobsters.model.LobstersPost import dev.msfjarvis.lobsters.model.Submitter @@ -57,10 +63,22 @@ fun LazyItemScope.LobstersItem( ) } } - Text( - text = "submitted by ${post.submitterUser.username}", - modifier = Modifier.padding(bottom = 4.dp), - ) + Row( + modifier = Modifier.wrapContentHeight(), + ) { + CoilImage( + data = "${ApiModule.LOBSTERS_URL}/${post.submitterUser.avatarUrl}", + fadeIn = true, + requestBuilder = { + transformations(CircleCropTransformation()) + }, + modifier = Modifier.width(30.dp).padding(4.dp).align(Alignment.CenterVertically), + ) + Text( + text = "submitted by ${post.submitterUser.username}", + modifier = Modifier.padding(bottom = 4.dp).align(Alignment.CenterVertically), + ) + } } } diff --git a/build.gradle b/build.gradle index a1dfa757..e776bfde 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext { + accompanist_version = "0.3.0" activity_version = "1.2.0-beta01" agp_version = "4.2.0-alpha13" appcompat_version = "1.3.0-alpha02"