From 48dc11ccfa20772b7907c48535af3c6a9f4da953 Mon Sep 17 00:00:00 2001 From: JIEUNI Date: Mon, 27 Nov 2023 01:14:44 +0900 Subject: [PATCH 1/5] =?UTF-8?q?[feat]=20#8=20=EC=9D=B4=EC=9A=A9=EC=98=88?= =?UTF-8?q?=EC=A0=95/=EC=99=84=EB=A3=8C=20=EB=B7=B0=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 3 + app/src/main/AndroidManifest.xml | 8 +- .../presentation/dummy/DummyActivity.kt | 17 -- app/src/main/res/drawable/arrow_back_45px.xml | 13 ++ app/src/main/res/drawable/arrow_front_31.xml | 10 + app/src/main/res/drawable/background_btn.xml | 7 + .../res/drawable/background_queue_item.xml | 9 + .../res/layout/activity_queue_details.xml | 75 +++++++ .../main/res/layout/fragment_queue_cancel.xml | 13 ++ .../res/layout/fragment_queue_reservation.xml | 18 ++ app/src/main/res/layout/reservation_item.xml | 203 ++++++++++++++++++ .../main/res/layout/reservation_item_done.xml | 162 ++++++++++++++ app/src/main/res/values/strings.xml | 25 +++ app/src/main/res/values/themes.xml | 4 + 14 files changed, 547 insertions(+), 20 deletions(-) delete mode 100644 app/src/main/java/org/sopt/tabling/presentation/dummy/DummyActivity.kt create mode 100644 app/src/main/res/drawable/arrow_back_45px.xml create mode 100644 app/src/main/res/drawable/arrow_front_31.xml create mode 100644 app/src/main/res/drawable/background_btn.xml create mode 100644 app/src/main/res/drawable/background_queue_item.xml create mode 100644 app/src/main/res/layout/activity_queue_details.xml create mode 100644 app/src/main/res/layout/fragment_queue_cancel.xml create mode 100644 app/src/main/res/layout/fragment_queue_reservation.xml create mode 100644 app/src/main/res/layout/reservation_item.xml create mode 100644 app/src/main/res/layout/reservation_item_done.xml diff --git a/app/build.gradle b/app/build.gradle index e7fd564..6dd0852 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -75,6 +75,9 @@ dependencies { implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0' implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0' + + // ViewPager2 + implementation 'androidx.viewpager2:viewpager2:1.0.0' } ktlint { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 763c086..3f46caa 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -15,19 +15,21 @@ android:theme="@style/Theme.TablingAndroid" android:usesCleartextTraffic="true" tools:targetApi="31"> + + + - \ No newline at end of file diff --git a/app/src/main/java/org/sopt/tabling/presentation/dummy/DummyActivity.kt b/app/src/main/java/org/sopt/tabling/presentation/dummy/DummyActivity.kt deleted file mode 100644 index 8a5923b..0000000 --- a/app/src/main/java/org/sopt/tabling/presentation/dummy/DummyActivity.kt +++ /dev/null @@ -1,17 +0,0 @@ -package org.sopt.tabling.presentation.dummy - -import android.os.Bundle -import androidx.activity.viewModels -import org.sopt.tabling.R -import org.sopt.tabling.databinding.ActivityDummyBinding -import org.sopt.tabling.presentation.common.ViewModelFactory -import org.sopt.tabling.util.binding.BindingActivity - -class DummyActivity : BindingActivity(R.layout.activity_dummy) { - private val dummyViewModel: DummyViewModel by viewModels { ViewModelFactory() } - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - binding.dummyViewModel = dummyViewModel - } -} diff --git a/app/src/main/res/drawable/arrow_back_45px.xml b/app/src/main/res/drawable/arrow_back_45px.xml new file mode 100644 index 0000000..f503c6a --- /dev/null +++ b/app/src/main/res/drawable/arrow_back_45px.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/app/src/main/res/drawable/arrow_front_31.xml b/app/src/main/res/drawable/arrow_front_31.xml new file mode 100644 index 0000000..0493032 --- /dev/null +++ b/app/src/main/res/drawable/arrow_front_31.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/background_btn.xml b/app/src/main/res/drawable/background_btn.xml new file mode 100644 index 0000000..8df6572 --- /dev/null +++ b/app/src/main/res/drawable/background_btn.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/background_queue_item.xml b/app/src/main/res/drawable/background_queue_item.xml new file mode 100644 index 0000000..0042d53 --- /dev/null +++ b/app/src/main/res/drawable/background_queue_item.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_queue_details.xml b/app/src/main/res/layout/activity_queue_details.xml new file mode 100644 index 0000000..7b946a8 --- /dev/null +++ b/app/src/main/res/layout/activity_queue_details.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_queue_cancel.xml b/app/src/main/res/layout/fragment_queue_cancel.xml new file mode 100644 index 0000000..d950633 --- /dev/null +++ b/app/src/main/res/layout/fragment_queue_cancel.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_queue_reservation.xml b/app/src/main/res/layout/fragment_queue_reservation.xml new file mode 100644 index 0000000..a7e1b0b --- /dev/null +++ b/app/src/main/res/layout/fragment_queue_reservation.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/reservation_item.xml b/app/src/main/res/layout/reservation_item.xml new file mode 100644 index 0000000..e3ce3e8 --- /dev/null +++ b/app/src/main/res/layout/reservation_item.xml @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/reservation_item_done.xml b/app/src/main/res/layout/reservation_item_done.xml new file mode 100644 index 0000000..c6a1000 --- /dev/null +++ b/app/src/main/res/layout/reservation_item_done.xml @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index be617d7..684b7ea 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,6 +1,31 @@ Tabling-Android + 원격 줄서기 내역 + 이용예정/완료 + 취소/노쇼 + + 이용예정 + 이용완료 + 상세보기 + 11월 13일 (월) + | + 2명 + 파이브가이즈 여의도 + 대기번호 # + 66 + 현재 내 앞 대기 + 4팀 + 내 순서 미루기 + 확정 코드 입력하기 + 리뷰쓰기 + 주문 취소 + "리뷰 작성 기간이 " + 2일 + " 남았어요!" + + Hello blank fragment + 서울 남부 전체 diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 7dc0da5..3a8a2ba 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -93,4 +93,8 @@ false + + \ No newline at end of file From a789ed53f240d3bdb8c9ea123fd64c22e3c8185a Mon Sep 17 00:00:00 2001 From: JIEUNI Date: Mon, 27 Nov 2023 01:16:20 +0900 Subject: [PATCH 2/5] =?UTF-8?q?[del]=20#8=20Dummy=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/model/request/RequestDummyDto.kt | 12 ---------- .../data/model/response/ResponseDummyDto.kt | 24 ------------------- .../sopt/tabling/domain/model/DummyData.kt | 7 ------ .../presentation/common/ViewModelFactory.kt | 16 ------------- .../presentation/dummy/DummyViewModel.kt | 2 +- 5 files changed, 1 insertion(+), 60 deletions(-) delete mode 100644 app/src/main/java/org/sopt/tabling/data/model/request/RequestDummyDto.kt delete mode 100644 app/src/main/java/org/sopt/tabling/data/model/response/ResponseDummyDto.kt delete mode 100644 app/src/main/java/org/sopt/tabling/domain/model/DummyData.kt delete mode 100644 app/src/main/java/org/sopt/tabling/presentation/common/ViewModelFactory.kt diff --git a/app/src/main/java/org/sopt/tabling/data/model/request/RequestDummyDto.kt b/app/src/main/java/org/sopt/tabling/data/model/request/RequestDummyDto.kt deleted file mode 100644 index 62fe44d..0000000 --- a/app/src/main/java/org/sopt/tabling/data/model/request/RequestDummyDto.kt +++ /dev/null @@ -1,12 +0,0 @@ -package org.sopt.tabling.data.model.request - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class RequestDummyDto( - @SerialName("name") - val name: String, - @SerialName("email") - val email: String, -) diff --git a/app/src/main/java/org/sopt/tabling/data/model/response/ResponseDummyDto.kt b/app/src/main/java/org/sopt/tabling/data/model/response/ResponseDummyDto.kt deleted file mode 100644 index f12001c..0000000 --- a/app/src/main/java/org/sopt/tabling/data/model/response/ResponseDummyDto.kt +++ /dev/null @@ -1,24 +0,0 @@ -package org.sopt.tabling.data.model.response - -import kotlinx.serialization.Serializable -import org.sopt.tabling.domain.model.DummyData - -@Serializable -data class ResponseDummyDto( - val status: Int, - val message: String, - val data: ResponseData, -) { - @Serializable - data class ResponseData( - val id: Int, - val name: String, - val email: String, - ) { - fun toDummyData() = DummyData( - id = id.toString(), - email = email, - name = name - ) - } -} diff --git a/app/src/main/java/org/sopt/tabling/domain/model/DummyData.kt b/app/src/main/java/org/sopt/tabling/domain/model/DummyData.kt deleted file mode 100644 index 9c8c7c2..0000000 --- a/app/src/main/java/org/sopt/tabling/domain/model/DummyData.kt +++ /dev/null @@ -1,7 +0,0 @@ -package org.sopt.tabling.domain.model - -data class DummyData( - val email: String, - val id: String, - val name: String, -) diff --git a/app/src/main/java/org/sopt/tabling/presentation/common/ViewModelFactory.kt b/app/src/main/java/org/sopt/tabling/presentation/common/ViewModelFactory.kt deleted file mode 100644 index a36830b..0000000 --- a/app/src/main/java/org/sopt/tabling/presentation/common/ViewModelFactory.kt +++ /dev/null @@ -1,16 +0,0 @@ -package org.sopt.tabling.presentation.common - -import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider -import org.sopt.tabling.data.datasource.remote.DummyDataSource -import org.sopt.tabling.data.repository.DummyRepositoryImpl -import org.sopt.tabling.presentation.dummy.DummyViewModel - -class ViewModelFactory : ViewModelProvider.Factory { - override fun create(modelClass: Class): T { - if (modelClass.isAssignableFrom(DummyViewModel::class.java)) { - return DummyViewModel(DummyRepositoryImpl(DummyDataSource())) as T - } - throw IllegalArgumentException("Unknown ViewModel Class") - } -} diff --git a/app/src/main/java/org/sopt/tabling/presentation/dummy/DummyViewModel.kt b/app/src/main/java/org/sopt/tabling/presentation/dummy/DummyViewModel.kt index bcfba5c..7f0ee23 100644 --- a/app/src/main/java/org/sopt/tabling/presentation/dummy/DummyViewModel.kt +++ b/app/src/main/java/org/sopt/tabling/presentation/dummy/DummyViewModel.kt @@ -7,4 +7,4 @@ class DummyViewModel( private val dummyRepositoryImpl: DummyRepositoryImpl ) : ViewModel() { // TODO 서버통신 관련 로직 작성 -} +} \ No newline at end of file From 96b426a90430cfba0ce73c6e3cf690df3b22dd8a Mon Sep 17 00:00:00 2001 From: JIEUNI Date: Mon, 27 Nov 2023 01:16:59 +0900 Subject: [PATCH 3/5] =?UTF-8?q?[feat]=20#8=20Multiviewtype=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84=20=EB=B0=8F=20mockData=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/model/request/RequestOrdersDto.kt | 11 ++++ .../data/model/response/ResponseOrdersDto.kt | 12 +++++ .../tabling/domain/model/ReservationItem.kt | 18 +++++++ .../common/ReservationViewModel.kt | 42 +++++++++++++++ .../presentation/queue/QueueCancelFragment.kt | 26 ++++++++++ .../queue/QueueDetailsActivity.kt | 20 ++++++++ .../queue/QueueReservationFragment.kt | 38 ++++++++++++++ .../presentation/queue/ReservationAdapter.kt | 51 +++++++++++++++++++ .../queue/ReservationDoneViewHolder.kt | 15 ++++++ .../queue/ReservationViewHolder.kt | 16 ++++++ 10 files changed, 249 insertions(+) create mode 100644 app/src/main/java/org/sopt/tabling/data/model/request/RequestOrdersDto.kt create mode 100644 app/src/main/java/org/sopt/tabling/data/model/response/ResponseOrdersDto.kt create mode 100644 app/src/main/java/org/sopt/tabling/domain/model/ReservationItem.kt create mode 100644 app/src/main/java/org/sopt/tabling/presentation/common/ReservationViewModel.kt create mode 100644 app/src/main/java/org/sopt/tabling/presentation/queue/QueueCancelFragment.kt create mode 100644 app/src/main/java/org/sopt/tabling/presentation/queue/QueueDetailsActivity.kt create mode 100644 app/src/main/java/org/sopt/tabling/presentation/queue/QueueReservationFragment.kt create mode 100644 app/src/main/java/org/sopt/tabling/presentation/queue/ReservationAdapter.kt create mode 100644 app/src/main/java/org/sopt/tabling/presentation/queue/ReservationDoneViewHolder.kt create mode 100644 app/src/main/java/org/sopt/tabling/presentation/queue/ReservationViewHolder.kt diff --git a/app/src/main/java/org/sopt/tabling/data/model/request/RequestOrdersDto.kt b/app/src/main/java/org/sopt/tabling/data/model/request/RequestOrdersDto.kt new file mode 100644 index 0000000..99c4c08 --- /dev/null +++ b/app/src/main/java/org/sopt/tabling/data/model/request/RequestOrdersDto.kt @@ -0,0 +1,11 @@ +package org.sopt.tabling.data.model.request + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class RequestOrdersDto( + // 이 부분 필요 없는 코드인가욥? + @SerialName("Content-Type") + val type : String = "application/json" +) diff --git a/app/src/main/java/org/sopt/tabling/data/model/response/ResponseOrdersDto.kt b/app/src/main/java/org/sopt/tabling/data/model/response/ResponseOrdersDto.kt new file mode 100644 index 0000000..c06bd9a --- /dev/null +++ b/app/src/main/java/org/sopt/tabling/data/model/response/ResponseOrdersDto.kt @@ -0,0 +1,12 @@ +package org.sopt.tabling.data.model.response + +import kotlinx.serialization.SerialName +import kotlinx.serialization.Serializable + +@Serializable +data class ResponseOrdersDto( + @SerialName("order_id") + val orderId : Int, + @SerialName("order_status") + val orderStatus: String, +) diff --git a/app/src/main/java/org/sopt/tabling/domain/model/ReservationItem.kt b/app/src/main/java/org/sopt/tabling/domain/model/ReservationItem.kt new file mode 100644 index 0000000..2e9f570 --- /dev/null +++ b/app/src/main/java/org/sopt/tabling/domain/model/ReservationItem.kt @@ -0,0 +1,18 @@ +package org.sopt.tabling.domain.model + +sealed class ReservationItem { + data class ReservationView( + val reservationDate: String, + val reserveNum: String, + val reserveName: String, + val waitingNum: String, + val realWaitNum: String + ) : ReservationItem() + + data class ReservationDoneView( + val reserveDate: String, + val reserveNum: String, + val reserveName: String, + val remainReviewNum: String + ) : ReservationItem() +} diff --git a/app/src/main/java/org/sopt/tabling/presentation/common/ReservationViewModel.kt b/app/src/main/java/org/sopt/tabling/presentation/common/ReservationViewModel.kt new file mode 100644 index 0000000..fea8208 --- /dev/null +++ b/app/src/main/java/org/sopt/tabling/presentation/common/ReservationViewModel.kt @@ -0,0 +1,42 @@ +package org.sopt.tabling.presentation.common + +import androidx.lifecycle.ViewModel +import org.sopt.tabling.domain.model.ReservationItem + +class ReservationViewModel : ViewModel(){ + // 가짜 데이터(이용예정) + val mockReservationList =listOf( + ReservationItem.ReservationView( + reservationDate = "11월 24일 (금)", + reserveNum = "2", + reserveName = "파이브가이즈 여의도", + waitingNum = "42", + realWaitNum = "15" + ), + ReservationItem.ReservationView( + reservationDate = "11월 24일 (금)", + reserveNum = "1", + reserveName = "영덕집", + waitingNum = "10", + realWaitNum = "10" + ), + ReservationItem.ReservationDoneView( + reserveDate = "11월 24일 (금)", + reserveName = "영덕집", + reserveNum = "4", + remainReviewNum = "3" + ), + ReservationItem.ReservationDoneView( + reserveDate = "11월 24일 (금)", + reserveName = "봄불고기", + reserveNum = "3", + remainReviewNum = "3" + ), + ReservationItem.ReservationDoneView( + reserveDate = "11월 24일 (금)", + reserveName = "요요마의 키친", + reserveNum = "2", + remainReviewNum = "3" + ) + ) +} diff --git a/app/src/main/java/org/sopt/tabling/presentation/queue/QueueCancelFragment.kt b/app/src/main/java/org/sopt/tabling/presentation/queue/QueueCancelFragment.kt new file mode 100644 index 0000000..b582a62 --- /dev/null +++ b/app/src/main/java/org/sopt/tabling/presentation/queue/QueueCancelFragment.kt @@ -0,0 +1,26 @@ +package org.sopt.tabling.presentation.queue + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import org.sopt.tabling.R +import org.sopt.tabling.databinding.FragmentQueueCancelBinding + + +class QueueCancelFragment : Fragment() { + private var _binding: FragmentQueueCancelBinding? = null + private val binding get() = _binding!! + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + } + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + _binding = FragmentQueueCancelBinding.inflate(inflater, container, false) + return binding.root + } +} \ No newline at end of file diff --git a/app/src/main/java/org/sopt/tabling/presentation/queue/QueueDetailsActivity.kt b/app/src/main/java/org/sopt/tabling/presentation/queue/QueueDetailsActivity.kt new file mode 100644 index 0000000..6c24890 --- /dev/null +++ b/app/src/main/java/org/sopt/tabling/presentation/queue/QueueDetailsActivity.kt @@ -0,0 +1,20 @@ +package org.sopt.tabling.presentation.queue + +import android.os.Bundle +import org.sopt.tabling.R +import org.sopt.tabling.databinding.ActivityQueueDetailsBinding +import org.sopt.tabling.util.binding.BindingActivity + +class QueueDetailsActivity : BindingActivity(R.layout.activity_queue_details) { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + val currentFragment = supportFragmentManager.findFragmentById(R.id.fcv_reservation) + if(currentFragment == null){ + supportFragmentManager.beginTransaction() + .add(R.id.fcv_reservation, QueueReservationFragment()) + .commit() + } + + } +} \ No newline at end of file diff --git a/app/src/main/java/org/sopt/tabling/presentation/queue/QueueReservationFragment.kt b/app/src/main/java/org/sopt/tabling/presentation/queue/QueueReservationFragment.kt new file mode 100644 index 0000000..7bfb730 --- /dev/null +++ b/app/src/main/java/org/sopt/tabling/presentation/queue/QueueReservationFragment.kt @@ -0,0 +1,38 @@ +package org.sopt.tabling.presentation.queue + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import androidx.fragment.app.viewModels +import org.sopt.tabling.databinding.FragmentQueueReservationBinding +import org.sopt.tabling.presentation.common.ReservationViewModel + +class QueueReservationFragment : Fragment() { + private var _binding: FragmentQueueReservationBinding? = null + private val binding: FragmentQueueReservationBinding + get() = requireNotNull(_binding){ "바인딩 객체가 생성되지 않았습니다." } + private val viewModel by viewModels() + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + _binding = FragmentQueueReservationBinding.inflate(inflater, container, false) + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + val reservationAdapter = ReservationAdapter(requireContext()) + binding.rvReservationItems.adapter = reservationAdapter + reservationAdapter.setReservationList(viewModel.mockReservationList) + } + + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } +} diff --git a/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationAdapter.kt b/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationAdapter.kt new file mode 100644 index 0000000..33f4d80 --- /dev/null +++ b/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationAdapter.kt @@ -0,0 +1,51 @@ +package org.sopt.tabling.presentation.queue + +import android.content.Context +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import org.sopt.tabling.databinding.ReservationItemBinding +import org.sopt.tabling.databinding.ReservationItemDoneBinding +import org.sopt.tabling.domain.model.ReservationItem +import java.lang.RuntimeException + +class ReservationAdapter(context: Context) : RecyclerView.Adapter() { + private val inflater by lazy { LayoutInflater.from(context) } + + private var reservationList: List = emptyList() + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { + return when (viewType) { + 1 -> ReservationViewHolder( + ReservationItemBinding.inflate(inflater, parent, false) + ) + + 2 -> ReservationDoneViewHolder( + ReservationItemDoneBinding.inflate(inflater, parent, false) + ) + + else -> throw RuntimeException() + } + } + + override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { + when (holder) { + is ReservationViewHolder -> holder.onBind(reservationList[position] as ReservationItem.ReservationView) + is ReservationDoneViewHolder -> holder.onBind(reservationList[position] as ReservationItem.ReservationDoneView) + } + } + + + override fun getItemViewType(position: Int): Int { + return when (reservationList[position]) { + is ReservationItem.ReservationView -> 1 + is ReservationItem.ReservationDoneView -> 2 + } + } + + override fun getItemCount(): Int = reservationList.size + + fun setReservationList(mockReservationList: List) { + reservationList = mockReservationList + notifyDataSetChanged() + } +} diff --git a/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationDoneViewHolder.kt b/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationDoneViewHolder.kt new file mode 100644 index 0000000..e4cbbfb --- /dev/null +++ b/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationDoneViewHolder.kt @@ -0,0 +1,15 @@ +package org.sopt.tabling.presentation.queue + +import androidx.recyclerview.widget.RecyclerView +import org.sopt.tabling.databinding.ReservationItemDoneBinding +import org.sopt.tabling.domain.model.ReservationItem + +class ReservationDoneViewHolder(private val binding: ReservationItemDoneBinding) : + RecyclerView.ViewHolder(binding.root) { + fun onBind(item: ReservationItem.ReservationDoneView) { + binding.tvReservationDate.text = item.reserveDate + binding.tvReservationPeople.text = item.reserveNum + "명" + binding.tvStoreName.text = item.reserveName + binding.tvRemainReviewNum.text = item.remainReviewNum + "일" + } +} \ No newline at end of file diff --git a/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationViewHolder.kt b/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationViewHolder.kt new file mode 100644 index 0000000..e59062f --- /dev/null +++ b/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationViewHolder.kt @@ -0,0 +1,16 @@ +package org.sopt.tabling.presentation.queue + +import androidx.recyclerview.widget.RecyclerView +import org.sopt.tabling.databinding.ReservationItemBinding +import org.sopt.tabling.domain.model.ReservationItem + +class ReservationViewHolder(private val binding: ReservationItemBinding) : +RecyclerView.ViewHolder(binding.root){ + fun onBind(item: ReservationItem.ReservationView){ + binding.tvReservationDate.text = item.reservationDate + binding.tvReservationPeople.text = item.reserveNum + "명" + binding.tvStoreName.text = item.reserveName + binding.tvWaitingNum.text = item.waitingNum + binding.tvWaitingInfoNum.text = item.realWaitNum + } +} \ No newline at end of file From c404ee95c132bd7c5b2b0cc2e96f572f66a19afa Mon Sep 17 00:00:00 2001 From: JIEUNI Date: Mon, 27 Nov 2023 01:23:51 +0900 Subject: [PATCH 4/5] =?UTF-8?q?[fix]=20#8=20Ui=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sopt/tabling/presentation/queue/ReservationViewHolder.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationViewHolder.kt b/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationViewHolder.kt index e59062f..5d10dc1 100644 --- a/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationViewHolder.kt +++ b/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationViewHolder.kt @@ -11,6 +11,6 @@ RecyclerView.ViewHolder(binding.root){ binding.tvReservationPeople.text = item.reserveNum + "명" binding.tvStoreName.text = item.reserveName binding.tvWaitingNum.text = item.waitingNum - binding.tvWaitingInfoNum.text = item.realWaitNum + binding.tvWaitingInfoNum.text = item.realWaitNum + "팀" } } \ No newline at end of file From f6d8fbcb77d251d34f665d3f243a0973d4cabf1b Mon Sep 17 00:00:00 2001 From: JIEUNI Date: Mon, 27 Nov 2023 23:32:25 +0900 Subject: [PATCH 5/5] =?UTF-8?q?[chore]=20#8=20=EC=BD=94=EB=93=9C=EB=A6=AC?= =?UTF-8?q?=EB=B7=B0=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 6 +- .../data/model/request/RequestOrdersDto.kt | 11 --- .../data/model/response/ResponseOrdersDto.kt | 2 +- .../common/ReservationViewModel.kt | 16 ++-- .../presentation/common/ViewModelFactory.kt | 16 ++++ .../presentation/queue/QueueCancelFragment.kt | 11 ++- .../queue/QueueDetailsActivity.kt | 8 +- .../queue/QueueReservationFragment.kt | 7 +- .../presentation/queue/ReservationAdapter.kt | 10 +-- .../queue/ReservationDoneViewHolder.kt | 6 +- .../queue/ReservationViewHolder.kt | 10 +-- app/src/main/res/drawable/background_btn.xml | 7 -- .../res/drawable/background_queue_item.xml | 9 --- ...row_back_45px.xml => ic_arrow_back_45.xml} | 0 ...row_front_31.xml => ic_arrow_front_31.xml} | 0 .../drawable/shape_gray_100_line_8_rect.xml | 12 +++ .../res/drawable/shape_white_line_8_rect.xml | 6 ++ .../res/layout/activity_queue_details.xml | 20 ++--- .../main/res/layout/fragment_queue_cancel.xml | 9 +-- .../res/layout/fragment_queue_reservation.xml | 12 +-- ...tem_done.xml => item_done_reservation.xml} | 27 +++---- ...ervation_item.xml => item_reservation.xml} | 78 ++++++++++--------- app/src/main/res/values/themes.xml | 11 +++ 23 files changed, 157 insertions(+), 137 deletions(-) delete mode 100644 app/src/main/java/org/sopt/tabling/data/model/request/RequestOrdersDto.kt create mode 100644 app/src/main/java/org/sopt/tabling/presentation/common/ViewModelFactory.kt delete mode 100644 app/src/main/res/drawable/background_btn.xml delete mode 100644 app/src/main/res/drawable/background_queue_item.xml rename app/src/main/res/drawable/{arrow_back_45px.xml => ic_arrow_back_45.xml} (100%) rename app/src/main/res/drawable/{arrow_front_31.xml => ic_arrow_front_31.xml} (100%) create mode 100644 app/src/main/res/drawable/shape_gray_100_line_8_rect.xml create mode 100644 app/src/main/res/drawable/shape_white_line_8_rect.xml rename app/src/main/res/layout/{reservation_item_done.xml => item_done_reservation.xml} (91%) rename app/src/main/res/layout/{reservation_item.xml => item_reservation.xml} (79%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3f46caa..225694b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,9 @@ + android:exported="false" + android:screenOrientation="portrait" + tools:ignore="LockedOrientationActivity"/> - \ No newline at end of file + diff --git a/app/src/main/java/org/sopt/tabling/data/model/request/RequestOrdersDto.kt b/app/src/main/java/org/sopt/tabling/data/model/request/RequestOrdersDto.kt deleted file mode 100644 index 99c4c08..0000000 --- a/app/src/main/java/org/sopt/tabling/data/model/request/RequestOrdersDto.kt +++ /dev/null @@ -1,11 +0,0 @@ -package org.sopt.tabling.data.model.request - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class RequestOrdersDto( - // 이 부분 필요 없는 코드인가욥? - @SerialName("Content-Type") - val type : String = "application/json" -) diff --git a/app/src/main/java/org/sopt/tabling/data/model/response/ResponseOrdersDto.kt b/app/src/main/java/org/sopt/tabling/data/model/response/ResponseOrdersDto.kt index c06bd9a..0c15897 100644 --- a/app/src/main/java/org/sopt/tabling/data/model/response/ResponseOrdersDto.kt +++ b/app/src/main/java/org/sopt/tabling/data/model/response/ResponseOrdersDto.kt @@ -6,7 +6,7 @@ import kotlinx.serialization.Serializable @Serializable data class ResponseOrdersDto( @SerialName("order_id") - val orderId : Int, + val orderId: Int, @SerialName("order_status") val orderStatus: String, ) diff --git a/app/src/main/java/org/sopt/tabling/presentation/common/ReservationViewModel.kt b/app/src/main/java/org/sopt/tabling/presentation/common/ReservationViewModel.kt index fea8208..acf66bf 100644 --- a/app/src/main/java/org/sopt/tabling/presentation/common/ReservationViewModel.kt +++ b/app/src/main/java/org/sopt/tabling/presentation/common/ReservationViewModel.kt @@ -3,40 +3,40 @@ package org.sopt.tabling.presentation.common import androidx.lifecycle.ViewModel import org.sopt.tabling.domain.model.ReservationItem -class ReservationViewModel : ViewModel(){ +class ReservationViewModel : ViewModel() { // 가짜 데이터(이용예정) - val mockReservationList =listOf( + val mockReservationList = listOf( ReservationItem.ReservationView( reservationDate = "11월 24일 (금)", reserveNum = "2", reserveName = "파이브가이즈 여의도", waitingNum = "42", - realWaitNum = "15" + realWaitNum = "15", ), ReservationItem.ReservationView( reservationDate = "11월 24일 (금)", reserveNum = "1", reserveName = "영덕집", waitingNum = "10", - realWaitNum = "10" + realWaitNum = "10", ), ReservationItem.ReservationDoneView( reserveDate = "11월 24일 (금)", reserveName = "영덕집", reserveNum = "4", - remainReviewNum = "3" + remainReviewNum = "3", ), ReservationItem.ReservationDoneView( reserveDate = "11월 24일 (금)", reserveName = "봄불고기", reserveNum = "3", - remainReviewNum = "3" + remainReviewNum = "3", ), ReservationItem.ReservationDoneView( reserveDate = "11월 24일 (금)", reserveName = "요요마의 키친", reserveNum = "2", - remainReviewNum = "3" - ) + remainReviewNum = "3", + ), ) } diff --git a/app/src/main/java/org/sopt/tabling/presentation/common/ViewModelFactory.kt b/app/src/main/java/org/sopt/tabling/presentation/common/ViewModelFactory.kt new file mode 100644 index 0000000..a36830b --- /dev/null +++ b/app/src/main/java/org/sopt/tabling/presentation/common/ViewModelFactory.kt @@ -0,0 +1,16 @@ +package org.sopt.tabling.presentation.common + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider +import org.sopt.tabling.data.datasource.remote.DummyDataSource +import org.sopt.tabling.data.repository.DummyRepositoryImpl +import org.sopt.tabling.presentation.dummy.DummyViewModel + +class ViewModelFactory : ViewModelProvider.Factory { + override fun create(modelClass: Class): T { + if (modelClass.isAssignableFrom(DummyViewModel::class.java)) { + return DummyViewModel(DummyRepositoryImpl(DummyDataSource())) as T + } + throw IllegalArgumentException("Unknown ViewModel Class") + } +} diff --git a/app/src/main/java/org/sopt/tabling/presentation/queue/QueueCancelFragment.kt b/app/src/main/java/org/sopt/tabling/presentation/queue/QueueCancelFragment.kt index b582a62..e17eca6 100644 --- a/app/src/main/java/org/sopt/tabling/presentation/queue/QueueCancelFragment.kt +++ b/app/src/main/java/org/sopt/tabling/presentation/queue/QueueCancelFragment.kt @@ -1,14 +1,12 @@ package org.sopt.tabling.presentation.queue import android.os.Bundle -import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import org.sopt.tabling.R +import androidx.fragment.app.Fragment import org.sopt.tabling.databinding.FragmentQueueCancelBinding - class QueueCancelFragment : Fragment() { private var _binding: FragmentQueueCancelBinding? = null private val binding get() = _binding!! @@ -17,10 +15,11 @@ class QueueCancelFragment : Fragment() { } override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle?, ): View? { _binding = FragmentQueueCancelBinding.inflate(inflater, container, false) return binding.root } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/sopt/tabling/presentation/queue/QueueDetailsActivity.kt b/app/src/main/java/org/sopt/tabling/presentation/queue/QueueDetailsActivity.kt index 6c24890..a1dc8f4 100644 --- a/app/src/main/java/org/sopt/tabling/presentation/queue/QueueDetailsActivity.kt +++ b/app/src/main/java/org/sopt/tabling/presentation/queue/QueueDetailsActivity.kt @@ -5,16 +5,16 @@ import org.sopt.tabling.R import org.sopt.tabling.databinding.ActivityQueueDetailsBinding import org.sopt.tabling.util.binding.BindingActivity -class QueueDetailsActivity : BindingActivity(R.layout.activity_queue_details) { +class QueueDetailsActivity : + BindingActivity(R.layout.activity_queue_details) { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val currentFragment = supportFragmentManager.findFragmentById(R.id.fcv_reservation) - if(currentFragment == null){ + if (currentFragment == null) { supportFragmentManager.beginTransaction() .add(R.id.fcv_reservation, QueueReservationFragment()) .commit() } - } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/sopt/tabling/presentation/queue/QueueReservationFragment.kt b/app/src/main/java/org/sopt/tabling/presentation/queue/QueueReservationFragment.kt index 7bfb730..97dfc4b 100644 --- a/app/src/main/java/org/sopt/tabling/presentation/queue/QueueReservationFragment.kt +++ b/app/src/main/java/org/sopt/tabling/presentation/queue/QueueReservationFragment.kt @@ -12,12 +12,13 @@ import org.sopt.tabling.presentation.common.ReservationViewModel class QueueReservationFragment : Fragment() { private var _binding: FragmentQueueReservationBinding? = null private val binding: FragmentQueueReservationBinding - get() = requireNotNull(_binding){ "바인딩 객체가 생성되지 않았습니다." } + get() = requireNotNull(_binding) { "바인딩 객체가 생성되지 않았습니다." } private val viewModel by viewModels() override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle?, ): View? { _binding = FragmentQueueReservationBinding.inflate(inflater, container, false) return binding.root diff --git a/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationAdapter.kt b/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationAdapter.kt index 33f4d80..4b1ed33 100644 --- a/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationAdapter.kt +++ b/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationAdapter.kt @@ -4,10 +4,9 @@ import android.content.Context import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView -import org.sopt.tabling.databinding.ReservationItemBinding -import org.sopt.tabling.databinding.ReservationItemDoneBinding +import org.sopt.tabling.databinding.ItemDoneReservationBinding +import org.sopt.tabling.databinding.ItemReservationBinding import org.sopt.tabling.domain.model.ReservationItem -import java.lang.RuntimeException class ReservationAdapter(context: Context) : RecyclerView.Adapter() { private val inflater by lazy { LayoutInflater.from(context) } @@ -16,11 +15,11 @@ class ReservationAdapter(context: Context) : RecyclerView.Adapter ReservationViewHolder( - ReservationItemBinding.inflate(inflater, parent, false) + ItemReservationBinding.inflate(inflater, parent, false), ) 2 -> ReservationDoneViewHolder( - ReservationItemDoneBinding.inflate(inflater, parent, false) + ItemDoneReservationBinding.inflate(inflater, parent, false), ) else -> throw RuntimeException() @@ -34,7 +33,6 @@ class ReservationAdapter(context: Context) : RecyclerView.Adapter 1 diff --git a/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationDoneViewHolder.kt b/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationDoneViewHolder.kt index e4cbbfb..0b5a99a 100644 --- a/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationDoneViewHolder.kt +++ b/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationDoneViewHolder.kt @@ -1,10 +1,10 @@ package org.sopt.tabling.presentation.queue import androidx.recyclerview.widget.RecyclerView -import org.sopt.tabling.databinding.ReservationItemDoneBinding +import org.sopt.tabling.databinding.ItemDoneReservationBinding import org.sopt.tabling.domain.model.ReservationItem -class ReservationDoneViewHolder(private val binding: ReservationItemDoneBinding) : +class ReservationDoneViewHolder(private val binding: ItemDoneReservationBinding) : RecyclerView.ViewHolder(binding.root) { fun onBind(item: ReservationItem.ReservationDoneView) { binding.tvReservationDate.text = item.reserveDate @@ -12,4 +12,4 @@ class ReservationDoneViewHolder(private val binding: ReservationItemDoneBinding) binding.tvStoreName.text = item.reserveName binding.tvRemainReviewNum.text = item.remainReviewNum + "일" } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationViewHolder.kt b/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationViewHolder.kt index 5d10dc1..5606ccf 100644 --- a/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationViewHolder.kt +++ b/app/src/main/java/org/sopt/tabling/presentation/queue/ReservationViewHolder.kt @@ -1,16 +1,16 @@ package org.sopt.tabling.presentation.queue import androidx.recyclerview.widget.RecyclerView -import org.sopt.tabling.databinding.ReservationItemBinding +import org.sopt.tabling.databinding.ItemReservationBinding import org.sopt.tabling.domain.model.ReservationItem -class ReservationViewHolder(private val binding: ReservationItemBinding) : -RecyclerView.ViewHolder(binding.root){ - fun onBind(item: ReservationItem.ReservationView){ +class ReservationViewHolder(private val binding: ItemReservationBinding) : + RecyclerView.ViewHolder(binding.root) { + fun onBind(item: ReservationItem.ReservationView) { binding.tvReservationDate.text = item.reservationDate binding.tvReservationPeople.text = item.reserveNum + "명" binding.tvStoreName.text = item.reserveName binding.tvWaitingNum.text = item.waitingNum binding.tvWaitingInfoNum.text = item.realWaitNum + "팀" } -} \ No newline at end of file +} diff --git a/app/src/main/res/drawable/background_btn.xml b/app/src/main/res/drawable/background_btn.xml deleted file mode 100644 index 8df6572..0000000 --- a/app/src/main/res/drawable/background_btn.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/background_queue_item.xml b/app/src/main/res/drawable/background_queue_item.xml deleted file mode 100644 index 0042d53..0000000 --- a/app/src/main/res/drawable/background_queue_item.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/arrow_back_45px.xml b/app/src/main/res/drawable/ic_arrow_back_45.xml similarity index 100% rename from app/src/main/res/drawable/arrow_back_45px.xml rename to app/src/main/res/drawable/ic_arrow_back_45.xml diff --git a/app/src/main/res/drawable/arrow_front_31.xml b/app/src/main/res/drawable/ic_arrow_front_31.xml similarity index 100% rename from app/src/main/res/drawable/arrow_front_31.xml rename to app/src/main/res/drawable/ic_arrow_front_31.xml diff --git a/app/src/main/res/drawable/shape_gray_100_line_8_rect.xml b/app/src/main/res/drawable/shape_gray_100_line_8_rect.xml new file mode 100644 index 0000000..d53b8f6 --- /dev/null +++ b/app/src/main/res/drawable/shape_gray_100_line_8_rect.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/app/src/main/res/drawable/shape_white_line_8_rect.xml b/app/src/main/res/drawable/shape_white_line_8_rect.xml new file mode 100644 index 0000000..10e649e --- /dev/null +++ b/app/src/main/res/drawable/shape_white_line_8_rect.xml @@ -0,0 +1,6 @@ + + + + + diff --git a/app/src/main/res/layout/activity_queue_details.xml b/app/src/main/res/layout/activity_queue_details.xml index 7b946a8..c32aa21 100644 --- a/app/src/main/res/layout/activity_queue_details.xml +++ b/app/src/main/res/layout/activity_queue_details.xml @@ -10,6 +10,7 @@ @@ -21,14 +22,14 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:navigationIcon="@drawable/arrow_back_45px" + app:navigationIcon="@drawable/ic_arrow_back_45" app:title="@string/queue_title" app:titleTextAppearance="@style/TextAppearance.H2" app:titleTextColor="@color/gray_800" /> + android:layout_marginTop="37dp" + android:background="@color/gray_000" + app:layout_constraintTop_toBottomOf="@id/top_app_bar" /> + app:layout_constraintTop_toBottomOf="@id/view_queue_details_bottom_bar" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_queue_cancel.xml b/app/src/main/res/layout/fragment_queue_cancel.xml index d950633..0cf67bd 100644 --- a/app/src/main/res/layout/fragment_queue_cancel.xml +++ b/app/src/main/res/layout/fragment_queue_cancel.xml @@ -1,13 +1,8 @@ - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_queue_reservation.xml b/app/src/main/res/layout/fragment_queue_reservation.xml index a7e1b0b..612da36 100644 --- a/app/src/main/res/layout/fragment_queue_reservation.xml +++ b/app/src/main/res/layout/fragment_queue_reservation.xml @@ -1,18 +1,20 @@ - + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + tools:listitem="@layout/item_reservation" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/reservation_item_done.xml b/app/src/main/res/layout/item_done_reservation.xml similarity index 91% rename from app/src/main/res/layout/reservation_item_done.xml rename to app/src/main/res/layout/item_done_reservation.xml index c6a1000..f84d421 100644 --- a/app/src/main/res/layout/reservation_item_done.xml +++ b/app/src/main/res/layout/item_done_reservation.xml @@ -1,5 +1,6 @@ + app:layout_constraintTop_toTopOf="parent" + tools:text="@string/queue_chip_done" /> @@ -112,12 +113,12 @@ android:layout_height="49dp" android:layout_marginStart="23dp" android:layout_marginTop="24dp" - android:background="@drawable/background_btn" - android:text="@string/queue_btn_review" - app:layout_constraintEnd_toEndOf="parent" android:layout_marginEnd="23dp" + android:background="@drawable/shape_gray_100_line_8_rect" + android:text="@string/queue_btn_review" android:textAppearance="@style/TextAppearance.Body1.SemiBold" android:textColor="@color/gray_600" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/iv_store_detail" /> @@ -141,7 +142,7 @@ android:layout_height="wrap_content" android:layout_marginTop="8dp" android:layout_marginBottom="18dp" - android:text="@string/queue_tv_remain_review_num" + tools:text="@string/queue_tv_remain_review_num" android:textAppearance="@style/TextAppearance.Caption1.SemiBold" android:textColor="@color/primary" app:layout_constraintBottom_toBottomOf="parent" diff --git a/app/src/main/res/layout/reservation_item.xml b/app/src/main/res/layout/item_reservation.xml similarity index 79% rename from app/src/main/res/layout/reservation_item.xml rename to app/src/main/res/layout/item_reservation.xml index e3ce3e8..4d4c69c 100644 --- a/app/src/main/res/layout/reservation_item.xml +++ b/app/src/main/res/layout/item_reservation.xml @@ -1,11 +1,12 @@ @@ -13,7 +14,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" - android:background="@drawable/background_queue_item" + android:background="@drawable/shape_white_line_8_rect" android:elevation="@dimen/spacing4" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" @@ -22,18 +23,20 @@ + app:layout_constraintTop_toTopOf="parent" + tools:text="이용예정" /> + app:layout_constraintTop_toBottomOf="@id/chip_reservation_wait" + tools:text="11월 13일 (월)" /> + app:layout_constraintTop_toBottomOf="@id/chip_reservation_wait" /> + app:layout_constraintTop_toBottomOf="@id/chip_reservation_wait" /> + app:layout_constraintTop_toBottomOf="@id/tv_reservation_date" + tools:text="파이브가이즈 여의도" /> @@ -111,73 +114,72 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="23dp" - android:layout_marginTop="108dp" + android:layout_marginTop="6dp" android:text="@string/queue_tv_waiting" android:textAppearance="@style/TextAppearance.H0" android:textColor="@color/primary" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toBottomOf="@id/iv_store_detail" /> + app:layout_constraintTop_toBottomOf="@id/iv_store_detail" + tools:text="66" /> + app:layout_constraintTop_toBottomOf="@id/tv_waiting_num" /> + app:layout_constraintTop_toBottomOf="@id/tv_waiting_num" + tools:text="4팀" /> + app:layout_constraintTop_toBottomOf="@id/tv_waiting_info" /> 15dp + + \ No newline at end of file