implemente picasso and implement images

This commit is contained in:
Carlos Martinez
2020-02-04 23:14:12 -03:00
parent c1efba5d63
commit 1d11a3e72e
8 changed files with 29 additions and 6 deletions

View File

@@ -4,6 +4,7 @@ import androidx.room.Room
import com.hako.base.domain.database.DatabaseClient
import com.hako.base.domain.network.RemoteClient
import com.hako.friendlists.BuildConfig
import com.squareup.picasso.Picasso
import org.koin.dsl.module
val appModules = module {
@@ -15,4 +16,7 @@ val appModules = module {
// Retrofit
single { RemoteClient(BuildConfig.BASE_ENDPOINT) }
// Picasso
single { Picasso.get() }
}

View File

@@ -51,6 +51,7 @@ dependencies {
api deps.okhttp_logging_interceptor
api deps.timber
api deps.lottie
api deps.picasso
//Testing
api deps.testing.junit
api deps.testing.koin

View File

@@ -7,6 +7,9 @@ import retrofit2.Retrofit
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
import retrofit2.converter.gson.GsonConverterFactory
import timber.log.Timber
import java.util.concurrent.TimeUnit
private const val TIMEOUT_IN_SECONDS = 60L
class RemoteClient(endpoint: String) {
private val logger = HttpLoggingInterceptor(object : HttpLoggingInterceptor.Logger {
@@ -17,6 +20,8 @@ class RemoteClient(endpoint: String) {
private val client = OkHttpClient.Builder()
.addInterceptor(logger)
.readTimeout(TIMEOUT_IN_SECONDS, TimeUnit.SECONDS)
.connectTimeout(TIMEOUT_IN_SECONDS, TimeUnit.SECONDS)
.build()
private val retrofit: Retrofit = Retrofit.Builder()

View File

@@ -20,6 +20,7 @@ versions.test = "1.2.0"
versions.test_ext = "1.1.1"
versions.espresso = "3.2.0"
versions.lottie = "3.3.1"
versions.picasso = "2.71828"
def deps = [:]
@@ -77,5 +78,6 @@ deps.testing = testing
deps.okhttp_logging_interceptor = "com.squareup.okhttp3:logging-interceptor:$versions.okhttp_logging_interceptor"
deps.timber = "com.jakewharton.timber:timber:$versions.timber"
deps.lottie = "com.airbnb.android:lottie:$versions.lottie"
deps.picasso = "com.squareup.picasso:picasso:$versions.picasso"
ext.deps = deps

View File

@@ -32,7 +32,7 @@ class PhotolistFragment : Fragment() {
setRecycler()
setObservers()
// TODO: Get album by bundle
viewModel.fetchPhotos(2)
viewModel.fetchPhotos(1)
}
private fun setObservers() {

View File

@@ -7,7 +7,10 @@ import androidx.recyclerview.widget.RecyclerView
import com.hako.base.extensions.autoNotify
import com.hako.photolist.R
import com.hako.photolist.model.PhotoViewable
import com.squareup.picasso.Picasso
import kotlinx.android.synthetic.main.item_photo_card.view.*
import org.koin.core.KoinComponent
import org.koin.core.inject
import kotlin.properties.Delegates
class PhotolistAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
@@ -40,11 +43,19 @@ class PhotolistAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
}
class PhotoViewHolder(private val view: View) :
RecyclerView.ViewHolder(view) {
RecyclerView.ViewHolder(view), KoinComponent {
private val picasso: Picasso by inject()
init {
picasso.setIndicatorsEnabled(true)
}
fun bind(photo: PhotoViewable) = with(view) {
picasso.load(photo.photoUrl)
.placeholder(R.drawable.img_photo_placeholder)
.fit()
.into(item_photo_card_photo)
item_photo_card_title.text = photo.title
// TODO load image
}
}

View File

@@ -20,8 +20,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/img_photo_placeholder"
android:contentDescription="Album photo" />
android:contentDescription="@string/album_photo" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/item_photo_card_footer_container"

View File

@@ -1,3 +1,4 @@
<resources>
<string name="app_name">photolist</string>
<string name="album_photo">Album photo</string>
</resources>