diff --git a/app/src/main/java/com/sopt/carrot/presentation/home/HomeActivity.kt b/app/src/main/java/com/sopt/carrot/presentation/home/HomeActivity.kt index c0de6b7..2e1b337 100644 --- a/app/src/main/java/com/sopt/carrot/presentation/home/HomeActivity.kt +++ b/app/src/main/java/com/sopt/carrot/presentation/home/HomeActivity.kt @@ -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() private val viewModelRecommended by viewModels() private val viewModelList by viewModels() @@ -20,6 +21,7 @@ class HomeActivity : AppCompatActivity() { setContentView(binding.root) observeRecommend() observeFull() + setTodayPopularityJobAdapter() } @@ -27,17 +29,24 @@ class HomeActivity : AppCompatActivity() { 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) + + } + } \ No newline at end of file diff --git a/app/src/main/java/com/sopt/carrot/presentation/home/TodayPopularityJobAdapter.kt b/app/src/main/java/com/sopt/carrot/presentation/home/TodayPopularityJobAdapter.kt new file mode 100644 index 0000000..69ec086 --- /dev/null +++ b/app/src/main/java/com/sopt/carrot/presentation/home/TodayPopularityJobAdapter.kt @@ -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( + 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() { + 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]) + } + + +} + + +