Merge pull request #39 from msfjarvis/user-avatars

This commit is contained in:
github-actions[bot] 2020-10-07 19:28:58 +00:00 committed by GitHub
commit 729f59ba96
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 26 additions and 5 deletions

View file

@ -84,6 +84,7 @@ dependencies {
implementation "androidx.ui:ui-tooling:$compose_version" implementation "androidx.ui:ui-tooling:$compose_version"
implementation "com.google.android.material:material:$material_version" implementation "com.google.android.material:material:$material_version"
implementation "com.google.dagger:hilt-android:$hilt_dagger_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 "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
implementation "saschpe.android:customtabs:$customtabs_version" implementation "saschpe.android:customtabs:$customtabs_version"
androidTestImplementation "com.google.dagger:hilt-android-testing:$hilt_dagger_version" androidTestImplementation "com.google.dagger:hilt-android-testing:$hilt_dagger_version"

View file

@ -10,8 +10,9 @@ import dev.msfjarvis.lobsters.api.LobstersApi
@InstallIn(ActivityComponent::class) @InstallIn(ActivityComponent::class)
@Module @Module
object ApiModule { object ApiModule {
const val LOBSTERS_URL = "https://lobste.rs"
@Provides @Provides
fun provideLobstersApi(): LobstersApi { fun provideLobstersApi(): LobstersApi {
return ApiClient.getClient("https://lobste.rs") return ApiClient.getClient(LOBSTERS_URL)
} }
} }

View file

@ -9,15 +9,21 @@ import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding 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.LazyColumnFor
import androidx.compose.foundation.lazy.LazyItemScope import androidx.compose.foundation.lazy.LazyItemScope
import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.ui.tooling.preview.Preview 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.LobstersPost
import dev.msfjarvis.lobsters.model.Submitter import dev.msfjarvis.lobsters.model.Submitter
@ -57,10 +63,22 @@ fun LazyItemScope.LobstersItem(
) )
} }
} }
Text( Row(
text = "submitted by ${post.submitterUser.username}", modifier = Modifier.wrapContentHeight(),
modifier = Modifier.padding(bottom = 4.dp), ) {
) 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),
)
}
} }
} }

View file

@ -1,6 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
ext { ext {
accompanist_version = "0.3.0"
activity_version = "1.2.0-beta01" activity_version = "1.2.0-beta01"
agp_version = "4.2.0-alpha13" agp_version = "4.2.0-alpha13"
appcompat_version = "1.3.0-alpha02" appcompat_version = "1.3.0-alpha02"