Skip to content

Commit

Permalink
[FEAT] #14-connect today popularity job adapter
Browse files Browse the repository at this point in the history
  • Loading branch information
sohyun127 committed May 26, 2023
1 parent 8ee3a27 commit 6616a2c
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ import com.sopt.carrot.util.toast
class HomeActivity : AppCompatActivity() {

private lateinit var binding: ActivityHomeBinding
private lateinit var adapterList: FullJobAdapter
private lateinit var adapter: TodayPopularityJobAdapter
private val viewModelPopularity by viewModels<TodayPopularityJobViewModel>()
private val viewModelRecommended by viewModels<RecommendedViewModel>()
private val viewModelList by viewModels<FullJobViewModel>()

Expand All @@ -20,24 +21,32 @@ class HomeActivity : AppCompatActivity() {
setContentView(binding.root)
observeRecommend()
observeFull()
setTodayPopularityJobAdapter()

}


private fun observeRecommend() {
viewModelRecommended.getRecommendedJob(
4L,
binding.rvHomeCard,
binding.rvHomeRecommend,
message = { str -> toast(str) })
}

private fun observeFull() {
viewModelList.getFullJob(
4L,
binding.rvHomeList, message = { str -> toast(str) }
binding.rvHomeSelectList, message = { str -> toast(str) }
)

}

private fun setTodayPopularityJobAdapter() {
adapter = TodayPopularityJobAdapter()
binding.rvHomeTodayPopularity.adapter = adapter
adapter.submitList(viewModelPopularity.mockTodayPopularityJobLists)

}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
package com.sopt.carrot.presentation.home

import android.graphics.Color
import android.text.Spannable
import android.text.SpannableString
import android.text.style.ForegroundColorSpan
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import com.sopt.carrot.databinding.ItemHomeTodayPopularityJobBinding


class TodayPopularityJobAdapter :
ListAdapter<TodayPopularityJob, TodayPopularityJobAdapter.TodayPopularityJobAdapterViewHolder>(
diffUtil
) {

class TodayPopularityJobAdapterViewHolder(private val binding: ItemHomeTodayPopularityJobBinding) :
RecyclerView.ViewHolder(binding.root) {

fun onBind(data: TodayPopularityJob) {
with(binding) {

val str1 = data.ranking
val str2 = data.title
val spannable = SpannableString("$str1 $str2")
spannable.setSpan(
ForegroundColorSpan(Color.parseColor("#FF8A3D")),
0,
str1.length,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
)
tvItemHomeTodayPopularityJobTitle.text = spannable
tvItemHomeTodayPopularityJobDetail.text = data.detail
tvItemHomeTodayPopularityJobInterest.text = "관심 " + data.interest
tvItemHomeTodayPopularityJobCheck.text = "조회 " + data.check
tvItemHomeTodayPopularityJobSalary.text = data.salary


}

}

}


companion object {
val diffUtil = object : DiffUtil.ItemCallback<TodayPopularityJob>() {
override fun areItemsTheSame(
oldItem: TodayPopularityJob,
newItem: TodayPopularityJob
): Boolean {
return oldItem.id == newItem.id
}

override fun areContentsTheSame(
oldItem: TodayPopularityJob,
newItem: TodayPopularityJob
): Boolean {
return oldItem == newItem
}

}
}

override fun onCreateViewHolder(
parent: ViewGroup,
viewType: Int
): TodayPopularityJobAdapterViewHolder {
val binding = ItemHomeTodayPopularityJobBinding.inflate(
LayoutInflater.from(parent.context),
parent,
false
)
return TodayPopularityJobAdapterViewHolder(binding)
}

override fun onBindViewHolder(holder: TodayPopularityJobAdapterViewHolder, position: Int) {
holder.onBind(currentList[position])
}


}



0 comments on commit 6616a2c

Please sign in to comment.