Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[REFACTOR/#192] 여행 대시 보드 뷰 / 코드 리팩토링 #197

Merged
merged 11 commits into from
Feb 8, 2024
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.going.presentation.dashboard

import android.content.Intent
import android.os.Bundle
import androidx.activity.viewModels
import com.going.presentation.R
Expand All @@ -9,8 +8,8 @@ import com.going.presentation.entertrip.StartTripSplashActivity
import com.going.presentation.entertrip.invitetrip.invitecode.EnterTripActivity.Companion.TRIP_ID
import com.going.presentation.setting.SettingActivity
import com.going.presentation.todo.TodoActivity
import com.going.presentation.todo.TodoActivity.Companion.EXTRA_TRIP_ID
import com.going.presentation.util.initOnBackPressedListener
import com.going.presentation.util.navigateToScreen
import com.going.ui.base.BaseActivity
import com.going.ui.extension.setOnSingleClickListener
import com.google.android.material.tabs.TabLayoutMediator
Expand Down Expand Up @@ -39,10 +38,10 @@ class DashBoardActivity :
private fun checkIsFirstEntered() {
if (intent.getBooleanExtra(IS_FIRST_ENTERED, false)) {
val tripId = intent.getLongExtra(TRIP_ID, 0)
Intent(this, TodoActivity::class.java).apply {
putExtra(EXTRA_TRIP_ID, tripId)
startActivity(this)
}
TodoActivity.createIntent(
this,
tripId
).apply { startActivity(this) }
Comment on lines +41 to +44
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

좋네욥 코드가 깔끔해진게 보여요 굿굿

}
}

Expand Down Expand Up @@ -74,25 +73,13 @@ class DashBoardActivity :

private fun initSettingBtnClickListener() {
binding.btnDashboardSetting.setOnSingleClickListener {
navigateToSettingScreen()
}
}

private fun navigateToSettingScreen() {
Intent(this, SettingActivity::class.java).apply {
startActivity(this)
navigateToScreen<SettingActivity>(isFinish = false)
}
}

private fun initCreateTripBtnClickListener() {
binding.btnDashboardCreateTrip.setOnSingleClickListener {
navigateToDashboard()
}
}

private fun navigateToDashboard() {
Intent(this, StartTripSplashActivity::class.java).apply {
startActivity(this)
navigateToScreen<StartTripSplashActivity>(isFinish = false)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,18 @@ import com.going.presentation.databinding.ItemDashBoardCompletedBinding
import com.going.ui.extension.ItemDiffCallback

class CompletedAdapter(
private val listener: OnDashBoardSelectedListener
private val itemDetailClick: (DashBoardTripModel) -> Unit
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

람다로 수정해주는거 너무 좋아요 ~~~~

) : ListAdapter<DashBoardTripModel, CompletedViewHolder>(diffUtil) {

interface OnDashBoardSelectedListener {
fun onDashBoardSelectedListener(tripCreate: DashBoardTripModel)
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CompletedViewHolder {
val inflater by lazy { LayoutInflater.from(parent.context) }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이거로 쓰는게 왜 좋게~요

val binding: ItemDashBoardCompletedBinding =
ItemDashBoardCompletedBinding.inflate(
LayoutInflater.from(parent.context),
inflater,
parent,
false
)
return CompletedViewHolder(binding, listener)
return CompletedViewHolder(binding, itemDetailClick)
}

override fun onBindViewHolder(holder: CompletedViewHolder, position: Int) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,16 @@
package com.going.presentation.dashboard.triplist.completed

import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.core.view.isVisible
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.flowWithLifecycle
import androidx.lifecycle.lifecycleScope
import com.going.domain.entity.response.DashBoardModel.DashBoardTripModel
import com.going.presentation.R
import com.going.presentation.dashboard.DashBoardViewModel
import com.going.presentation.dashboard.triplist.DashBoardDecoration
import com.going.presentation.dashboard.triplist.ongoing.OngoingTripFragment
import com.going.presentation.databinding.FragmentCompletedTripBinding
import com.going.presentation.entertrip.StartTripSplashActivity
import com.going.presentation.todo.TodoActivity
import com.going.presentation.todo.TodoActivity.Companion.EXTRA_TRIP_ID
import com.going.ui.base.BaseFragment
import com.going.ui.extension.UiState
import com.going.ui.extension.toast
Expand All @@ -25,8 +20,7 @@ import kotlinx.coroutines.flow.onEach

@AndroidEntryPoint
class CompletedTripFragment :
BaseFragment<FragmentCompletedTripBinding>(R.layout.fragment_completed_trip),
CompletedAdapter.OnDashBoardSelectedListener {
BaseFragment<FragmentCompletedTripBinding>(R.layout.fragment_completed_trip) {

private val viewModel by activityViewModels<DashBoardViewModel>()

Expand All @@ -36,14 +30,19 @@ class CompletedTripFragment :
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

initAdapter()
initAdapterWithClickListener()
initItemDecoration()
setTripList()
observeDashBoardListState()
}

private fun initAdapter() {
_adapter = CompletedAdapter(this)
private fun initAdapterWithClickListener() {
_adapter = CompletedAdapter { dashBoardTripModel ->
TodoActivity.createIntent(
requireContext(),
dashBoardTripModel.tripId
).apply { startActivity(this) }
Comment on lines +41 to +44
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

좋아용! 사용법 잘 알고있네요 ~~~ 안에 내용이 좀 길어진다 싶으면 따로 함수화해주어도 가독성이 더 좋아집니다 !

}
binding.rvDashboardCompletedTrip.adapter = adapter
}

Expand Down Expand Up @@ -86,11 +85,4 @@ class CompletedTripFragment :
_adapter = null
}

override fun onDashBoardSelectedListener(tripCreate: DashBoardTripModel) {
Intent(activity, TodoActivity::class.java).apply {
putExtra(EXTRA_TRIP_ID, tripCreate.tripId)
startActivity(this)
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import com.going.ui.extension.setOnSingleClickListener

class CompletedViewHolder(
val binding: ItemDashBoardCompletedBinding,
private val listener: CompletedAdapter.OnDashBoardSelectedListener
private val itemDetailClick: (DashBoardTripModel) -> Unit
) : RecyclerView.ViewHolder(binding.root) {

fun onBind(item: DashBoardTripModel) {
Expand All @@ -23,8 +23,8 @@ class CompletedViewHolder(
tvDashboardDeadlineCompleted.text =
itemView.context.getString(R.string.dashboard_tv_completed_trip)

layoutDashboard.setOnSingleClickListener {
listener.onDashBoardSelectedListener(item)
root.setOnSingleClickListener {
itemDetailClick(item)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,18 @@ import com.going.presentation.databinding.ItemDashBoardOngoingBinding
import com.going.ui.extension.ItemDiffCallback

class OngoingAdapter(
private val listener: OnDashBoardSelectedListener
private val itemDetailClick: (DashBoardTripModel) -> Unit
) : ListAdapter<DashBoardTripModel, OngoingViewHolder>(diffUtil) {

interface OnDashBoardSelectedListener {
fun onDashBoardSelectedListener(tripCreate: DashBoardTripModel)
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): OngoingViewHolder {
val inflater by lazy { LayoutInflater.from(parent.context) }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

값이 할당된 후 바로 밑에서 사용되는데 by lazy를 사용한 이유는 뭘까요??

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

동민이도 이거 알아오는거 숙제 ~

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오호,,,생각해보도록 하겠습니닷

val binding: ItemDashBoardOngoingBinding =
ItemDashBoardOngoingBinding.inflate(
LayoutInflater.from(parent.context),
inflater,
parent,
false
)
return OngoingViewHolder(binding, listener)
return OngoingViewHolder(binding, itemDetailClick)
}

override fun onBindViewHolder(holder: OngoingViewHolder, position: Int) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,16 @@
package com.going.presentation.dashboard.triplist.ongoing

import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.core.view.isVisible
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.flowWithLifecycle
import androidx.lifecycle.lifecycleScope
import com.going.domain.entity.response.DashBoardModel.DashBoardTripModel
import com.going.presentation.R
import com.going.presentation.dashboard.DashBoardViewModel
import com.going.presentation.dashboard.triplist.DashBoardDecoration
import com.going.presentation.databinding.FragmentOngoingTripBinding
import com.going.presentation.todo.TodoActivity
import com.going.presentation.todo.TodoActivity.Companion.EXTRA_TRIP_ID
import com.going.ui.base.BaseFragment
import com.going.ui.extension.UiState
import com.going.ui.extension.toast
Expand All @@ -23,8 +20,7 @@ import kotlinx.coroutines.flow.onEach

@AndroidEntryPoint
class OngoingTripFragment :
BaseFragment<FragmentOngoingTripBinding>(R.layout.fragment_ongoing_trip),
OngoingAdapter.OnDashBoardSelectedListener {
BaseFragment<FragmentOngoingTripBinding>(R.layout.fragment_ongoing_trip) {

private val viewModel by activityViewModels<DashBoardViewModel>()

Expand All @@ -34,15 +30,20 @@ class OngoingTripFragment :
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

initAdapter()
initAdapterWithClickListener()
initItemDecoration()
setTripList()
observeDashBoardListState()

}

private fun initAdapter() {
_adapter = OngoingAdapter(this)
private fun initAdapterWithClickListener() {
_adapter = OngoingAdapter { dashBoardTripModel ->
TodoActivity.createIntent(
requireContext(),
dashBoardTripModel.tripId
).apply { startActivity(this) }
}
binding.rvDashboardOngoingTrip.adapter = adapter
}

Expand Down Expand Up @@ -85,11 +86,4 @@ class OngoingTripFragment :
_adapter = null
}

override fun onDashBoardSelectedListener(tripCreate: DashBoardTripModel) {
Intent(activity, TodoActivity::class.java).apply {
putExtra(EXTRA_TRIP_ID, tripCreate.tripId)
startActivity(this)
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import com.going.ui.extension.setOnSingleClickListener

class OngoingViewHolder(
val binding: ItemDashBoardOngoingBinding,
private val listener: OngoingAdapter.OnDashBoardSelectedListener
private val itemDetailClick: (DashBoardTripModel) -> Unit
) : RecyclerView.ViewHolder(binding.root) {

fun onBind(item: DashBoardTripModel) {
Expand All @@ -20,16 +20,13 @@ class OngoingViewHolder(
item.endDate
)

if (item.day <= 0) {
tvDashboardDeadline.text =
itemView.context.getString(R.string.dashboard_tv_traveling)
} else {
tvDashboardDeadline.text =
itemView.context.getString(R.string.dashboard_tv_deadline, item.day)
tvDashboardDeadline.text = when {
item.day <= 0 -> itemView.context.getString(R.string.dashboard_tv_traveling)
else -> itemView.context.getString(R.string.dashboard_tv_deadline, item.day)
}

layoutDashboard.setOnSingleClickListener {
listener.onDashBoardSelectedListener(item)
root.setOnSingleClickListener {
itemDetailClick(item)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.going.presentation.todo

import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.fragment.app.commit
Expand Down Expand Up @@ -71,6 +73,14 @@ class TodoActivity() : BaseActivity<ActivityTodoBinding>(R.layout.activity_todo)

companion object {
const val EXTRA_TRIP_ID = "TRIP_ID"

@JvmStatic
fun createIntent(
context: Context,
tripId: Long
): Intent = Intent(context, TodoActivity::class.java).apply {
putExtra(EXTRA_TRIP_ID, tripId)
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
android:overScrollMode="never"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/gray_50"
android:overScrollMode="never"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toTopOf="@id/btn_preference_start"
app:layout_constraintEnd_toEndOf="parent"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/gray_50"
android:overScrollMode="never"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toTopOf="@id/btn_preference_start"
app:layout_constraintEnd_toEndOf="parent"
Expand Down
Loading