mirror of
https://github.com/imcarlost/Friendlists.git
synced 2026-04-10 02:46:54 -04:00
implemente picasso and implement images
This commit is contained in:
@@ -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() }
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -32,7 +32,7 @@ class PhotolistFragment : Fragment() {
|
||||
setRecycler()
|
||||
setObservers()
|
||||
// TODO: Get album by bundle
|
||||
viewModel.fetchPhotos(2)
|
||||
viewModel.fetchPhotos(1)
|
||||
}
|
||||
|
||||
private fun setObservers() {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
<resources>
|
||||
<string name="app_name">photolist</string>
|
||||
<string name="album_photo">Album photo</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user