Skip to content

Commit

Permalink
[Feat] 사장님 피드백 완료
Browse files Browse the repository at this point in the history
  • Loading branch information
aidan committed Aug 9, 2024
1 parent 832eff4 commit 01291aa
Show file tree
Hide file tree
Showing 15 changed files with 85 additions and 54 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.zion830.threedollars.ui.mypage.adapter

import com.zion830.threedollars.R
import com.zion830.threedollars.databinding.ItemBossReviewBinding
import zion830.com.common.base.BaseRecyclerView

class FeedBackItemAdapter :
BaseRecyclerView<ItemBossReviewBinding, String>(R.layout.item_boss_review)
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
package com.zion830.threedollars.ui.mypage.adapter

import android.view.LayoutInflater
import android.util.Log
import android.view.ViewGroup
import androidx.core.view.isVisible
import androidx.paging.PagingDataAdapter
import com.threedollar.common.listener.OnItemClickListener
import com.threedollar.network.data.feedback.FeedbackTypeResponse
import com.threedollar.network.data.user.MyFeedbacksData
import com.zion830.threedollars.R
import com.zion830.threedollars.databinding.ItemBossReviewBinding
import com.zion830.threedollars.databinding.ItemMyBossReviewBinding
import com.zion830.threedollars.utils.StringUtils
import zion830.com.common.base.BaseDiffUtilCallback
import zion830.com.common.base.BaseViewHolder

Expand All @@ -27,19 +25,19 @@ class MyBossReviewRecyclerAdapter(
holder.bind(item, if (item.store.isDeleted == false) listener else null)
val previousItem = if (position > 0) getItem(position - 1) else null
holder.binding.apply {
val feedbacks = item.feedbacks.orEmpty()
tvCreatedAt.text = StringUtils.getTimeString(item.date, "yyyy.MM.dd")
val feedbackKeys = item.feedbacks.orEmpty()
val feedbackItems = feedbackKeys.map { feedbackKey ->
val feedBack = feedBacks.find { it.feedbackType == feedbackKey.feedbackType }
"${feedBack?.emoji} ${feedBack?.description}"
}
tvCreatedAt.text = item.date.replace("-", ".")

val titleVisibility = !(position > 0 && previousItem?.store?.storeId == item.store.storeId)
tvStoreName.isVisible = titleVisibility
ivCategory.isVisible = titleVisibility
tvCount.text = "${feedbacks.size}"
feedbacks.forEach { feedbackKey ->
val bossReview = ItemBossReviewBinding.inflate(LayoutInflater.from(llBoosReviews.context), null, false)
val feedBack = feedBacks.find { it.feedbackType == feedbackKey.feedbackType }
bossReview.tvReview.text = "${feedBack?.emoji} ${feedBack?.description}"
llBoosReviews.addView(bossReview.root)
}
tvCount.text = "${feedbackKeys.size}"
Log.e("asdas", feedbackItems.toString())
feedBackItem = feedbackItems
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import android.text.style.StyleSpan
import android.widget.ImageView
import android.widget.TextView
import androidx.databinding.BindingAdapter
import androidx.recyclerview.widget.RecyclerView
import com.threedollar.network.data.store.Category
import com.zion830.threedollars.datasource.model.MenuType
import com.zion830.threedollars.datasource.model.v2.response.store.CategoriesModel
Expand Down Expand Up @@ -102,4 +103,11 @@ fun ImageView.bindSmallMenuIcon(category: MenuType?) {
}

setImageResource(MenuType.of(category.key).colorIcon)
}

@BindingAdapter("feedBacks")
fun RecyclerView.setFeedBacks(feedBacks: List<String>? = emptyList()) {
val feedBackItemAdapter = FeedBackItemAdapter()
feedBackItemAdapter.submitList(feedBacks)
this.adapter = feedBackItemAdapter
}
Original file line number Diff line number Diff line change
Expand Up @@ -73,14 +73,14 @@ class RecentVisitHistoryViewHolder(parent: ViewGroup, private val onClickListene
super.bind(item, listener)
binding.run {
tvCreatedAt.text = StringUtils.getTimeString(item.createdAt)
ivCategory.bindMenuIcons(item.store.categories)
ivCategory.bindMenuIcons(item.store.categories.orEmpty())
val categoryInfo = LegacySharedPrefUtils.getCategories()
val categories = item.store.categories.joinToString(" ") {
val categories = item.store.categories.orEmpty().joinToString(" ") {
"#${categoryInfo.find { categoryInfo -> categoryInfo.categoryId == it.categoryId }?.name}"
}
tvCategories.text = categories
layoutItem.setOnClickListener {
if (!item.store.isDeleted) {
if (item.store.isDeleted == false) {
onClickListener.onClick(item)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ class MyVisitHistoryRecyclerAdapter(

override fun onBindViewHolder(holder: BaseViewHolder<ItemMyVisitHistoryBinding, MyVisitHistoryV2>, position: Int) {
val item = getItem(position) ?: MyVisitHistoryV2()
holder.bind(item, if (!item.store.isDeleted) listener else null)
holder.bind(item, if (item.store.isDeleted == false) listener else null)

val beforeItem = if (position > 0) getItem(position - 1) else null
val categoryInfo = LegacySharedPrefUtils.getCategories()
val categories = item.store.categories.joinToString(" ") { "#${categoryInfo.find { categoryInfo -> categoryInfo.categoryId == it.categoryId }?.name}" }
val categories = item.store.categories.orEmpty().joinToString(" ") { "#${categoryInfo.find { categoryInfo -> categoryInfo.categoryId == it.categoryId }?.name}" }

holder.binding.apply {
tvCreatedAt.text = StringUtils.getTimeString(item.store.createdAt, "yy.MM.dd")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import com.threedollar.network.data.user.MyFeedbacksData
import com.zion830.threedollars.databinding.FragmentReviewItemBinding
import com.zion830.threedollars.ui.mypage.adapter.MyBossReviewRecyclerAdapter
import com.zion830.threedollars.ui.mypage.viewModel.MyReviewViewModel
import com.zion830.threedollars.ui.storeDetail.user.ui.StoreDetailActivity
import com.zion830.threedollars.ui.storeDetail.boss.ui.BossStoreDetailActivity
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch

Expand All @@ -37,7 +37,7 @@ class FeedBackFragmentItem : Fragment() {
myReviewViewModel.feedbacks.observe(viewLifecycleOwner) {
adapter = MyBossReviewRecyclerAdapter(myReviewViewModel.feedbacks.value.orEmpty(), object : OnItemClickListener<MyFeedbacksData> {
override fun onClick(item: MyFeedbacksData) {
val intent = StoreDetailActivity.getIntent(requireContext(), item.store.storeId?.toIntOrNull())
val intent = BossStoreDetailActivity.getIntent(requireContext(), item.store.storeId.toString())
startActivityForResult(intent, Constants.SHOW_STORE_DETAIL)
}
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import com.threedollar.common.ext.addNewFragment
import com.threedollar.common.listener.OnItemClickListener
import com.threedollar.common.utils.Constants
import com.threedollar.common.utils.Constants.BOSS_STORE
import com.threedollar.common.utils.toDefaultInt
import com.zion830.threedollars.EventTracker
import com.zion830.threedollars.R
import com.zion830.threedollars.UserInfoViewModel
Expand Down Expand Up @@ -92,7 +93,7 @@ class MyPageFragment : BaseFragment<FragmentNewMyPageBinding, MyPageViewModel>()
object : OnItemClickListener<AdAndStoreItem> {
override fun onClick(item: AdAndStoreItem) {
val visitHistoryContent = item as VisitHistoryContent
val intent = StoreDetailActivity.getIntent(requireContext(), visitHistoryContent.store.storeId)
val intent = StoreDetailActivity.getIntent(requireContext(), visitHistoryContent.store.storeId?.toIntOrNull().toDefaultInt())
startActivityForResult(intent, Constants.SHOW_STORE_DETAIL)
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class MyVisitHistoryFragment :
override fun initView() {
adapter = MyVisitHistoryRecyclerAdapter(object : OnItemClickListener<MyVisitHistoryV2> {
override fun onClick(item: MyVisitHistoryV2) {
val intent = StoreDetailActivity.getIntent(requireContext(), item.store.storeId)
val intent = StoreDetailActivity.getIntent(requireContext(), item.store.storeId?.toIntOrNull())
startActivityForResult(intent, Constants.SHOW_STORE_DETAIL)
}
})
Expand Down
51 changes: 31 additions & 20 deletions app/src/main/res/layout/item_boss_review.xml
Original file line number Diff line number Diff line change
@@ -1,22 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@drawable/rect_white_radius_4"
android:backgroundTint="@color/gray95"
android:padding="12dp">
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<TextView
android:id="@+id/tvReview"
android:layout_width="0dp"
android:layout_height="0dp"
android:textColor="@color/color_white"
android:textSize="14dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<data>

<variable
name="item"
type="String" />
</data>

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:background="@drawable/rect_white_radius_4"
android:backgroundTint="@color/gray95"
android:padding="12dp">

<TextView
android:id="@+id/tvReview"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@{item}"
android:textColor="@color/color_white"
android:textSize="14dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
12 changes: 8 additions & 4 deletions app/src/main/res/layout/item_my_boss_review.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@
<variable
name="listener"
type="com.threedollar.common.listener.OnItemClickListener" />

<variable
name="feedBackItem"
type="java.util.List&lt;String>" />
</data>

<androidx.constraintlayout.widget.ConstraintLayout
Expand Down Expand Up @@ -84,15 +88,15 @@
app:layout_constraintTop_toTopOf="@id/tvCount"
tools:text="20.30.11" />

<LinearLayout
android:id="@+id/llBoosReviews"
<androidx.recyclerview.widget.RecyclerView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvCount" />
app:layout_constraintTop_toBottomOf="@id/tvCount"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:feedBacks="@{feedBackItem}"/>

</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ allprojects {

maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
maven { url 'https://jitpack.io' }
maven { url 'https://naver.jfrog.io/artifactory/maven/' }
maven { url 'https://repository.map.naver.com/archive/maven' }
maven { url 'https://dl.bintray.com/greenfrvr/maven/' }
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import com.threedollar.common.data.AdAndStoreItem

data class StoreInfo(
@SerializedName("categories")
val categories: List<Category> = listOf(),
val categories: List<String> = listOf(),
@SerializedName("createdAt")
val createdAt: String = "",
@SerializedName("distance")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ package com.threedollar.network.data.visit_history

import com.google.gson.annotations.SerializedName
import com.squareup.moshi.JsonClass
import com.threedollar.network.data.store.StoreInfo
import com.threedollar.network.data.store.Store
import com.threedollar.network.data.store.Visit

@JsonClass(generateAdapter = true)
data class MyVisitHistoryV2(
@SerializedName("visit")
val visit: Visit = Visit(),
@SerializedName("store")
val store: StoreInfo = StoreInfo(),
val store: Store = Store(),
)
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ package com.threedollar.network.data.visit_history
import com.squareup.moshi.Json
import com.squareup.moshi.JsonClass
import com.threedollar.common.data.AdAndStoreItem
import com.threedollar.network.data.store.Store
import com.threedollar.network.data.store.StoreInfo

@JsonClass(generateAdapter = true)
Expand All @@ -13,7 +14,7 @@ data class VisitHistoryContent(
@Json(name = "dateOfVisit")
val dateOfVisit: String? = "",
@Json(name = "store")
val store: StoreInfo = StoreInfo(),
val store: Store = Store(),
@Json(name = "type")
val type: String? = "",
@Json(name = "updatedAt")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,10 @@ fun MyFavoriteFolderResponse.toMyPageShops(): List<MyPageShop> {
fun MyVisitHistoryResponseV2.toMyPageShops(): List<MyPageShop> {
return contents?.map {
MyPageShop(
title = it.store.storeName,
imageUrl = it.store.categories.first().imageUrl.orEmpty(),
tags = it.store.categories.map { it.name.orEmpty() },
storeType = it.store.salesType.toString(),
title = it.store.storeName.toString(),
imageUrl = it.store.categories.orEmpty().first().imageUrl.orEmpty(),
tags = it.store.categories.orEmpty().map { it.name.orEmpty() },
storeType = it.store.storeType.toString(),
storeId = it.store.storeId.toString(),
visitedData = MyPageShop.ShopVisitedData(it.visit.isExist(), formatDateString(it.visit.createdAt.orEmpty()))
)
Expand Down

0 comments on commit 01291aa

Please sign in to comment.