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

[FEAT/#87] 여행 생성 뷰 #95

Merged
merged 3 commits into from
Jan 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,12 @@
android:screenOrientation="portrait" />

<activity
android:name="com.going.presentation.preferencetag.PreferenceTagActivity"
android:name="com.going.presentation.preferencetag.entertrip.EnterPreferenceActivity"
android:exported="false"
android:screenOrientation="portrait" />

<activity
android:name="com.going.presentation.preferencetag.invitefinish.FinishPreferenceActivity"
android:exported="false"
android:screenOrientation="portrait" />

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class AuthRepositoryImpl @Inject constructor(
).data.toAuthTokenModel()
}

override suspend fun getSplash(): Result<Unit> = kotlin.runCatching {
override suspend fun getSplash(): Result<Unit> = runCatching {
authDataSource.getSplash()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package com.going.presentation.dashboard
import android.os.Bundle
import androidx.activity.viewModels
import com.going.presentation.R
import com.going.presentation.dashboard.triplist.OngoingTripFragment
import com.going.presentation.databinding.ActivityTripDashBoardBinding
import com.going.ui.base.BaseActivity
import com.google.android.material.tabs.TabLayoutMediator
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ package com.going.presentation.dashboard
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.going.presentation.dashboard.triplist.CompletedTripFragment
import com.going.presentation.dashboard.triplist.OngoingTripFragment
import com.going.presentation.dashboard.triplist.completed.CompletedTripFragment
import com.going.presentation.dashboard.triplist.ongoing.OngoingTripFragment

class DashBoardViewPagerAdapter(fragment: FragmentActivity) : FragmentStateAdapter(fragment) {
override fun getItemCount(): Int = 2
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.going.presentation.dashboard.triplist
package com.going.presentation.dashboard.triplist.completed

import android.view.LayoutInflater
import android.view.ViewGroup
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.going.presentation.dashboard.triplist
package com.going.presentation.dashboard.triplist.completed

import android.os.Bundle
import android.view.View
Expand All @@ -9,6 +9,7 @@ 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.FragmentCompletedTripBinding
import com.going.ui.base.BaseFragment
import com.going.ui.extension.UiState
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.going.presentation.dashboard.triplist
package com.going.presentation.dashboard.triplist.completed

import androidx.recyclerview.widget.RecyclerView
import com.going.domain.entity.response.DashBoardModel.DashBoardTripModel
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.going.presentation.dashboard.triplist
package com.going.presentation.dashboard.triplist.ongoing

import android.view.LayoutInflater
import android.view.ViewGroup
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.going.presentation.dashboard.triplist
package com.going.presentation.dashboard.triplist.ongoing

import android.os.Bundle
import android.view.View
Expand All @@ -9,6 +9,7 @@ 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.ui.base.BaseFragment
import com.going.ui.extension.UiState
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.going.presentation.dashboard.triplist
package com.going.presentation.dashboard.triplist.ongoing

import androidx.recyclerview.widget.RecyclerView
import com.going.domain.entity.response.DashBoardModel.DashBoardTripModel
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import com.going.presentation.enter.entertrip.EnterTripActivity.Companion.DAY
import com.going.presentation.enter.entertrip.EnterTripActivity.Companion.END
import com.going.presentation.enter.entertrip.EnterTripActivity.Companion.START
import com.going.presentation.enter.entertrip.EnterTripActivity.Companion.TITLE
import com.going.presentation.preferencetag.PreferenceTagActivity
import com.going.presentation.preferencetag.entertrip.EnterPreferenceActivity
import com.going.ui.base.BaseActivity
import com.going.ui.extension.setOnSingleClickListener
import dagger.hilt.android.AndroidEntryPoint
Expand Down Expand Up @@ -58,7 +58,7 @@ class InviteFinishActivity :

private fun initEnterBtnClickListener() {
binding.btnInviteFinishEnter.setOnSingleClickListener {
Intent(this, PreferenceTagActivity::class.java).apply {
Intent(this, EnterPreferenceActivity::class.java).apply {
startActivity(this)
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.going.presentation.preferencetag

import android.content.Context
import android.provider.MediaStore.Audio.Radio
import android.view.LayoutInflater
import android.view.ViewGroup
import android.widget.RadioButton
import com.going.domain.entity.PreferenceData
import androidx.recyclerview.widget.ListAdapter
import com.going.presentation.databinding.ItemPreferenceTagBinding
Expand All @@ -17,7 +19,7 @@ class PreferenceTagAdapter(
private val inflater by lazy { LayoutInflater.from(context) }

interface OnPreferenceSelectedListener {
fun onPreferenceSelected(preference: PreferenceData)
fun onPreferenceSelected(item: PreferenceData, checkedIndex: Int)
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PreferenceTagViewHolder {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.going.presentation.preferencetag

import androidx.appcompat.widget.AppCompatButton
import androidx.recyclerview.widget.RecyclerView
import com.going.domain.entity.PreferenceData
import com.going.presentation.R
Expand All @@ -27,8 +26,9 @@ class PreferenceTagViewHolder(
R.id.rb_preference_5
)

if (checkedId in selectedButtonIdList) {
listener.onPreferenceSelected(item)
val checkedIndex = selectedButtonIdList.indexOf(checkedId)
if (checkedIndex != -1) {
listener.onPreferenceSelected(item, checkedIndex)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class PreferenceTagViewModel : ViewModel() {
val preferenceTagList = listOf<PreferenceData>(
PreferenceData(
number = "01",
question = "계획은 얼만큼 짤까요?",
question = "계획은 어느정도로 세울까요?",
leftPrefer = "철저하게",
rightPrefer = "즉흥으로"
),
Expand All @@ -20,19 +20,19 @@ class PreferenceTagViewModel : ViewModel() {
),
PreferenceData(
number = "03",
question = "음식을 고를 때 무엇을 더 중요시 하나요?",
leftPrefer = "철저한 계획",
rightPrefer = "무계획"
question = "어느 식당을 갈까요?",
leftPrefer = "유명 맛집",
rightPrefer = "가까운 곳"
),
PreferenceData(
number = "04",
question = "멋진 풍경이 보이면?",
question = "기억하고 싶은 순간에!",
leftPrefer = "사진 필수",
rightPrefer = "눈에 담기"
),
PreferenceData(
number = "05",
question = "스케줄 구성은 어떻게 할까요?",
question = "하루 일정을 어떻게 채우나요?",
leftPrefer = "알차게",
rightPrefer = "여유롭게"
),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
package com.going.presentation.preferencetag.entertrip

import android.os.Bundle
import androidx.activity.viewModels
import androidx.core.content.ContextCompat
import com.going.domain.entity.PreferenceData
import com.going.presentation.R
import com.going.presentation.databinding.ActivityEnterPreferenceBinding
import com.going.presentation.preferencetag.PreferenceTagAdapter
import com.going.presentation.preferencetag.PreferenceTagDecoration
import com.going.presentation.preferencetag.PreferenceTagViewModel
import com.going.presentation.starttrip.createtrip.CreateTripActivity.Companion.END_DAY
import com.going.presentation.starttrip.createtrip.CreateTripActivity.Companion.END_MONTH
import com.going.presentation.starttrip.createtrip.CreateTripActivity.Companion.END_YEAR
import com.going.presentation.starttrip.createtrip.CreateTripActivity.Companion.NAME
import com.going.presentation.starttrip.createtrip.CreateTripActivity.Companion.START_DAY
import com.going.presentation.starttrip.createtrip.CreateTripActivity.Companion.START_MONTH
import com.going.presentation.starttrip.createtrip.CreateTripActivity.Companion.START_YEAR
import com.going.ui.base.BaseActivity
import com.going.ui.extension.setOnSingleClickListener

class EnterPreferenceActivity :
BaseActivity<ActivityEnterPreferenceBinding>(R.layout.activity_enter_preference),
PreferenceTagAdapter.OnPreferenceSelectedListener {

private var _adapter: PreferenceTagAdapter? = null
private val adapter get() = requireNotNull(_adapter) { getString(R.string.adapter_not_initialized_error_msg) }

private val viewModel by viewModels<PreferenceTagViewModel>()

private val preferenceAnswers = MutableList(5) { Int.MAX_VALUE }

private var title: String? = ""
private var startDate: String? = ""
private var endDate: String? = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

initAdapter()
initItemDecoration()
initBackClickListener()
getCreateTripInfo()
sendStyleInfo()

}

private fun initAdapter() {
_adapter = PreferenceTagAdapter(this, this)
binding.rvPreferenceTag.adapter = adapter
adapter.submitList(viewModel.preferenceTagList)
}

private fun initItemDecoration() {
val itemDeco = PreferenceTagDecoration(this)
binding.rvPreferenceTag.addItemDecoration(itemDeco)
}

private fun initBackClickListener() {
binding.btnPreferenceStart.setOnSingleClickListener {
sendStyleInfo()
}
}

private fun isButtonValid() {
val isValid = preferenceAnswers.all { it != Int.MAX_VALUE }

if (isValid) {
binding.btnPreferenceStart.isEnabled = isValid
binding.btnPreferenceStart.setTextColor(
ContextCompat.getColorStateList(this, R.color.white_000)
)
}
}

private fun getCreateTripInfo() {
val serverList = getIntent()

if (serverList != null) {
title = intent.getStringExtra(NAME)
val startYear = intent.getIntExtra(START_YEAR, 0)
val startMonth = intent.getIntExtra(START_MONTH, 0)
val startDay = intent.getIntExtra(START_DAY, 0)
val endYear = intent.getIntExtra(END_YEAR, 0)
val endMonth = intent.getIntExtra(END_MONTH, 0)
val endDay = intent.getIntExtra(END_DAY, 0)

startDate = String.format(SERVER_DATE, startYear, startMonth, startDay)
endDate = String.format(SERVER_DATE, endYear, endMonth, endDay)
}

}

private fun sendStyleInfo() {
var styleA = preferenceAnswers[0]
}

override fun onPreferenceSelected(item: PreferenceData, checkList: Int) {
preferenceAnswers[item.number.toInt() - 1] = checkList
isButtonValid()
}

override fun onDestroy() {
super.onDestroy()
_adapter = null
}

companion object {
const val SERVER_DATE = "%s.%s.%s"
}
}
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
package com.going.presentation.preferencetag
package com.going.presentation.preferencetag.invitefinish

import android.os.Bundle
import androidx.activity.viewModels
import com.going.domain.entity.PreferenceData
import com.going.presentation.R
import com.going.presentation.databinding.ActivityPreferenceTagBinding
import com.going.presentation.databinding.ActivityFinishPreferenceBinding
import com.going.presentation.preferencetag.PreferenceTagAdapter
import com.going.presentation.preferencetag.PreferenceTagDecoration
import com.going.presentation.preferencetag.PreferenceTagViewModel
import com.going.ui.base.BaseActivity
import com.going.ui.extension.setOnSingleClickListener

class PreferenceTagActivity :
BaseActivity<ActivityPreferenceTagBinding>(R.layout.activity_preference_tag),
class FinishPreferenceActivity :
BaseActivity<ActivityFinishPreferenceBinding>(R.layout.activity_finish_preference),
PreferenceTagAdapter.OnPreferenceSelectedListener {

private var _adapter: PreferenceTagAdapter? = null
Expand Down Expand Up @@ -37,18 +40,18 @@ class PreferenceTagActivity :
binding.rvPreferenceTag.addItemDecoration(itemDeco)
}

private fun initBackClickListener(){
private fun initBackClickListener() {
binding.btnPreferenceBack.setOnSingleClickListener {
finish()
}
}

override fun onPreferenceSelected(preference: PreferenceData) {
// 선택된 취향 태그 처리
override fun onPreferenceSelected(item: PreferenceData, checkList: Int) {

}

override fun onDestroy() {
super.onDestroy()
_adapter = null
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import androidx.core.content.res.ResourcesCompat
import com.going.domain.entity.NameState
import com.going.presentation.R
import com.going.presentation.databinding.ActivityCreateTripBinding
import com.going.presentation.preferencetag.PreferenceTagActivity
import com.going.presentation.preferencetag.entertrip.EnterPreferenceActivity
import com.going.presentation.starttrip.StartTripSplashActivity
import com.going.ui.base.BaseActivity
import com.going.ui.extension.setOnSingleClickListener
Expand Down Expand Up @@ -175,24 +175,27 @@ class CreateTripActivity :

private fun initNextBtnClickListener() {
binding.btnCreateTripNext.setOnSingleClickListener {
Intent(this, PreferenceTagActivity::class.java).apply {
Intent(this, EnterPreferenceActivity::class.java).apply {
putExtra(NAME, viewModel.name.value)
putExtra(START, viewModel.startYear.value)

putExtra(START, viewModel.startMonth.value)
putExtra(START, viewModel.startDay.value)
putExtra(END, viewModel.endYear.value)
putExtra(END, viewModel.endMonth.value)
putExtra(END, viewModel.endDay.value)
putExtra(START_YEAR, viewModel.startYear.value)
putExtra(START_MONTH, viewModel.startMonth.value)
putExtra(START_DAY, viewModel.startDay.value)
putExtra(END_YEAR, viewModel.endYear.value)
putExtra(END_MONTH, viewModel.endMonth.value)
putExtra(END_DAY, viewModel.endDay.value)
startActivity(this)
}
}
}

companion object {
const val NAME = "name"
const val START = "start"
const val END = "end"
const val START_YEAR = "startYear"
const val START_MONTH = "startMonth"
const val START_DAY = "startDay"
const val END_YEAR = "endYear"
const val END_MONTH = "endMonth"
const val END_DAY = "endDay"
}
}

Expand Down
Loading