From 8f963606f773f4d79398c1a109ee986d44ce81e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D1=81=D0=B5=D0=BD=D0=B8=D0=B8?= Date: Thu, 20 Feb 2025 11:27:47 +0300 Subject: [PATCH] fix profile: recycler view --- .../work/data/user/UserNetworkDataSource.kt | 1 + .../ru/myitschool/work/ui/profile/EntranceAdapter.kt | 5 +++-- .../ru/myitschool/work/ui/profile/ProfileFragment.kt | 11 +++++++++-- .../myitschool/work/ui/qr/result/QrResultFragment.kt | 4 +--- .../myitschool/work/ui/qr/result/QrResultViewModel.kt | 2 +- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/ru/myitschool/work/data/user/UserNetworkDataSource.kt b/app/src/main/java/ru/myitschool/work/data/user/UserNetworkDataSource.kt index bbb0414..be3abbc 100644 --- a/app/src/main/java/ru/myitschool/work/data/user/UserNetworkDataSource.kt +++ b/app/src/main/java/ru/myitschool/work/data/user/UserNetworkDataSource.kt @@ -43,6 +43,7 @@ class UserNetworkDataSource { if (result.status != HttpStatusCode.OK) { error("Status ${result.status}") } + Log.d("result", result.bodyAsText()) result.body() } diff --git a/app/src/main/java/ru/myitschool/work/ui/profile/EntranceAdapter.kt b/app/src/main/java/ru/myitschool/work/ui/profile/EntranceAdapter.kt index eada599..6d1ee9d 100644 --- a/app/src/main/java/ru/myitschool/work/ui/profile/EntranceAdapter.kt +++ b/app/src/main/java/ru/myitschool/work/ui/profile/EntranceAdapter.kt @@ -1,16 +1,17 @@ package ru.sicampus.bootcamp2025.ui.centerList +import android.content.Context import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView +import dagger.hilt.android.qualifiers.ApplicationContext import ru.myitschool.work.databinding.OneEntryListViewBinding import ru.myitschool.work.domain.user.EntranceEntity class EntranceAdapter( - //private val onCenterClick: (CenterEntity) -> Unit ) : ListAdapter(EntranceDiff) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { @@ -33,7 +34,7 @@ class EntranceAdapter( ) : RecyclerView.ViewHolder(binding.root) { fun bind(item : EntranceEntity) { binding.time.text = item.enteredAt - binding.type.text = item.enterType + binding.time.text = item.enterType binding.entry.text = item.name } } diff --git a/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.kt b/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.kt index 5cff13f..bfea954 100644 --- a/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.kt +++ b/app/src/main/java/ru/myitschool/work/ui/profile/ProfileFragment.kt @@ -12,6 +12,7 @@ import ru.myitschool.work.databinding.FragmentProfileBinding import ru.myitschool.work.ui.login.EntryActivity import ru.myitschool.work.ui.qr.scan.QrScanFragment import ru.myitschool.work.utils.collectWithLifecycle +import ru.sicampus.bootcamp2025.ui.centerList.EntranceAdapter class ProfileFragment : Fragment(R.layout.fragment_profile) { private var _viewBinding: FragmentProfileBinding? = null @@ -40,6 +41,8 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) { fragmentTransaction.addToBackStack(null) fragmentTransaction.commit() } + val adapter = EntranceAdapter() + viewBinding.recyclerView.adapter = adapter viewModel.state.collectWithLifecycle(this) { state -> @@ -60,14 +63,18 @@ class ProfileFragment : Fragment(R.layout.fragment_profile) { else viewBinding.lastEntry.text = "Время последнего входа: ${state.profileInfo.lastEntry}" Picasso.get().load(state.profileInfo.avatarUrl).resize(100, 100).centerCrop().into(viewBinding.imageView) - if (state.entrancesList.size == 0) { + if (state.entrancesList.isEmpty()) { viewBinding.noData.visibility = View.VISIBLE } + else { + viewBinding.recyclerView.visibility = View.VISIBLE + adapter.submitList(state.entrancesList) + + } } is ProfileViewModel.State.Error -> { viewBinding.errorText.text = state.text - } } diff --git a/app/src/main/java/ru/myitschool/work/ui/qr/result/QrResultFragment.kt b/app/src/main/java/ru/myitschool/work/ui/qr/result/QrResultFragment.kt index 39e33a6..747af54 100644 --- a/app/src/main/java/ru/myitschool/work/ui/qr/result/QrResultFragment.kt +++ b/app/src/main/java/ru/myitschool/work/ui/qr/result/QrResultFragment.kt @@ -30,9 +30,7 @@ class QrResultFragment : Fragment(R.layout.fragment_qr_result) { key, bundle -> if (key == QrScanDestination.REQUEST_KEY) { val code = QrScanDestination.getDataIfExist(bundle) - if (code != null) { - viewModel.sendResult(code.toString()) - } + viewModel.sendResult(code) } } viewBinding.close.setOnClickListener { diff --git a/app/src/main/java/ru/myitschool/work/ui/qr/result/QrResultViewModel.kt b/app/src/main/java/ru/myitschool/work/ui/qr/result/QrResultViewModel.kt index 1acac87..da491a8 100644 --- a/app/src/main/java/ru/myitschool/work/ui/qr/result/QrResultViewModel.kt +++ b/app/src/main/java/ru/myitschool/work/ui/qr/result/QrResultViewModel.kt @@ -54,7 +54,7 @@ class QrResultViewModel( } } - fun sendResult(code : String) { + fun sendResult(code : String?) { updateState(code) }