Skip to content

Commit a6f1b7e

Browse files
Merge pull request #38 from intive-FDV/fix/person_detail
Fix Person error layout when there isn't data.
2 parents a84362f + 69d5829 commit a6f1b7e

File tree

4 files changed

+14
-65
lines changed

4 files changed

+14
-65
lines changed

app/src/main/java/com/intive/tmdbandroid/details/ui/person/adapter/CombinedCreditsAdapter.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import android.view.ViewGroup
55
import androidx.recyclerview.widget.DiffUtil
66
import androidx.recyclerview.widget.ListAdapter
77
import androidx.recyclerview.widget.RecyclerView
8+
import androidx.swiperefreshlayout.widget.CircularProgressDrawable
89
import com.bumptech.glide.Glide
910
import com.bumptech.glide.request.RequestOptions
1011
import com.intive.tmdbandroid.R
@@ -42,9 +43,15 @@ class CombinedCreditsAdapter(
4243
clickListener.invoke(item)
4344
}
4445

46+
val circularProgressDrawable = CircularProgressDrawable(itemView.context).apply {
47+
strokeWidth = 5f
48+
centerRadius = 25f
49+
}
50+
circularProgressDrawable.start()
51+
4552
val options = RequestOptions()
4653
.centerCrop()
47-
.placeholder(R.drawable.ic_image)
54+
.placeholder(circularProgressDrawable)
4855
.error(R.drawable.ic_image)
4956

5057
val backdropURL = imgUrl + item.backdrop_path

app/src/main/java/com/intive/tmdbandroid/details/ui/person/ui/DetailPersonFragment.kt

Lines changed: 3 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import android.view.LayoutInflater
55
import android.view.View
66
import android.view.ViewGroup
77
import androidx.appcompat.content.res.AppCompatResources
8-
import androidx.core.content.ContextCompat
98
import androidx.core.view.isVisible
109
import androidx.fragment.app.Fragment
1110
import androidx.fragment.app.viewModels
@@ -110,7 +109,7 @@ class DetailPersonFragment : Fragment() {
110109
is State.Success -> {
111110
binding.layoutLoadingDetail.root.isVisible = false
112111
binding.coordinatorContainerDetail.isVisible = true
113-
setupUICombineCredits(binding, state.data)
112+
setupUICombineCredits(state.data)
114113
}
115114
}
116115
}
@@ -144,23 +143,15 @@ class DetailPersonFragment : Fragment() {
144143
}
145144
}
146145

147-
private fun setupUICombineCredits(
148-
binding: FragmentDetailPersonBinding,
149-
screenings: List<Screening>
150-
) {
151-
if (screenings.isNotEmpty())
152-
combinedCreditsAdapter.submitList(screenings)
153-
else {
154-
binding.layoutErrorDetail.root.isVisible = true
155-
}
146+
private fun setupUICombineCredits(screenings: List<Screening>) {
147+
combinedCreditsAdapter.submitList(screenings)
156148
}
157149

158150
private fun setupUIDetailPerson(
159151
binding: FragmentDetailPersonBinding,
160152
resultPerson: ResultPerson
161153
) {
162154
setImage(resultPerson.profile_path, binding)
163-
setPopularity(resultPerson.popularity, binding)
164155
setToolbar(resultPerson.name, binding)
165156
setBiography(resultPerson.biography, binding)
166157
}
@@ -181,29 +172,6 @@ class DetailPersonFragment : Fragment() {
181172
.into(binding.imageDetailImageView)
182173
}
183174

184-
private fun setPopularity(
185-
popularity: Double,
186-
binding: FragmentDetailPersonBinding
187-
) {
188-
val percentage = (popularity * 10).toInt()
189-
190-
binding.popularityRatingNumber.text =
191-
requireContext().resources.getString(R.string.popularity, percentage)
192-
193-
val context = binding.root.context
194-
195-
when {
196-
percentage < 25 -> binding.popularityThumbIcon.imageTintList =
197-
ContextCompat.getColorStateList(context, R.color.red)
198-
percentage < 45 -> binding.popularityThumbIcon.imageTintList =
199-
ContextCompat.getColorStateList(context, R.color.orange)
200-
percentage < 75 -> binding.popularityThumbIcon.imageTintList =
201-
ContextCompat.getColorStateList(context, R.color.yellow)
202-
else -> binding.popularityThumbIcon.imageTintList =
203-
ContextCompat.getColorStateList(context, R.color.green)
204-
}
205-
}
206-
207175
private fun setToolbar(name: String, binding: FragmentDetailPersonBinding) {
208176
val navController = findNavController()
209177
val appBarConfiguration = AppBarConfiguration(navController.graph)

app/src/main/java/com/intive/tmdbandroid/entity/ResultPerson.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,5 @@ package com.intive.tmdbandroid.entity
33
data class ResultPerson(
44
val name: String,
55
val biography: String,
6-
val popularity: Double,
76
val profile_path: String?
87
)

app/src/main/res/layout/fragment_detail_person.xml

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -66,49 +66,24 @@
6666
android:layout_height="wrap_content"
6767
android:layout_margin="16dp">
6868

69-
<ImageView
70-
android:id="@+id/popularity_thumb_icon"
71-
android:layout_width="wrap_content"
72-
android:layout_height="wrap_content"
73-
android:contentDescription="@string/thumb_description"
74-
android:src="@drawable/ic_thumb_up"
75-
app:layout_constraintStart_toStartOf="parent"
76-
app:layout_constraintTop_toTopOf="parent"
77-
app:tint="@color/red" />
78-
79-
<TextView
80-
android:id="@+id/popularity_rating_number"
81-
android:layout_width="wrap_content"
82-
android:layout_height="wrap_content"
83-
android:layout_marginStart="12dp"
84-
android:textColor="@color/material_on_background_emphasis_high_type"
85-
android:textSize="20sp"
86-
android:textStyle="bold"
87-
app:layout_constraintBottom_toBottomOf="@+id/popularity_thumb_icon"
88-
app:layout_constraintStart_toEndOf="@id/popularity_thumb_icon"
89-
app:layout_constraintTop_toTopOf="@id/popularity_thumb_icon"
90-
tools:text="23%" />
91-
9269
<TextView
9370
android:id="@+id/biography_textView"
9471
android:layout_width="wrap_content"
9572
android:layout_height="wrap_content"
96-
android:layout_marginTop="32dp"
9773
android:text="@string/biography"
98-
android:textColor="@color/material_on_background_emphasis_high_type"
74+
android:textColor="@color/black"
9975
android:textSize="20sp"
10076
android:textStyle="bold"
10177
app:layout_constraintStart_toStartOf="parent"
102-
app:layout_constraintTop_toBottomOf="@+id/popularity_rating_number" />
103-
78+
app:layout_constraintTop_toTopOf="parent"/>
10479
<TextView
10580
android:id="@+id/biography_detail_textView"
10681
android:layout_width="match_parent"
10782
android:layout_height="wrap_content"
10883
android:layout_marginVertical="20dp"
10984
android:layout_marginTop="8dp"
11085
android:lineSpacingExtra="4dp"
111-
android:textColor="@color/material_on_background_emphasis_high_type"
86+
android:textColor="@color/black"
11287
android:textSize="16sp"
11388
app:layout_constraintStart_toStartOf="parent"
11489
app:layout_constraintTop_toBottomOf="@id/biography_textView"

0 commit comments

Comments
 (0)