Skip to content

Commit

Permalink
[MERGE] #208 -> develop
Browse files Browse the repository at this point in the history
[FIX/#208] ํˆฌ๋‘ ์ƒ์„ฑ, ์กฐํšŒ ๋ทฐ / ๋ฉ”๋ชจ ๋นˆ์นธ ๋Œ€์‘ ์ˆ˜์ •
  • Loading branch information
Marchbreeze authored Mar 1, 2024
2 parents 888e88c + cc0f3bc commit 238cce8
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import com.going.presentation.R
import com.going.presentation.databinding.ActivityTodoCreateBinding
import com.going.presentation.todo.TodoActivity.Companion.EXTRA_TRIP_ID
import com.going.ui.base.BaseActivity
import com.going.ui.extension.colorOf
import com.going.ui.extension.drawableOf
import com.going.ui.extension.setOnSingleClickListener
import com.going.ui.extension.toast
import com.going.ui.state.UiState
Expand Down Expand Up @@ -48,6 +50,7 @@ class TodoCreateActivity : BaseActivity<ActivityTodoCreateBinding>(R.layout.acti
setEtTodoMemoArguments()
observeNameTextChanged()
observeMemoTextChanged()
observeEndDateSelected()
}

private fun initViewModel() {
Expand Down Expand Up @@ -163,6 +166,18 @@ class TodoCreateActivity : BaseActivity<ActivityTodoCreateBinding>(R.layout.acti
}
}

private fun observeEndDateSelected() {
viewModel.endDate.observe(this) {
if (!viewModel.endDate.value.isNullOrEmpty()) {
with(binding) {
etTodoCreateDate.background = drawableOf(R.drawable.shape_rect_4_gray700_line)
tvTodoCreateDateHint.setTextColor(colorOf(R.color.gray_700))
ivTodoCreateDate.setImageResource(R.drawable.ic_dropdown_gray700)
}
}
}
}

override fun onDestroy() {
super.onDestroy()
_adapter = null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,13 @@ class TodoCreateViewModel @Inject constructor(
private val todoRepository: TodoRepository,
) : ViewModel() {

val todo = MutableLiveData("")
private val todo = MutableLiveData("")
private val memo = MutableLiveData("")

val endDate = MutableLiveData("")
val memo = MutableLiveData("")

private val isTodoAvailable = MutableLiveData(false)
private val isMemoAvailable = MutableLiveData(false)
private val isMemoAvailable = MutableLiveData(true)
val isFinishAvailable = MutableLiveData(false)

private val _todoCreateState = MutableStateFlow<UiState<Unit>>(UiState.Empty)
Expand All @@ -43,13 +44,13 @@ class TodoCreateViewModel @Inject constructor(

fun setMemoState(memoText: String, state: EditTextState) {
memo.value = memoText
isMemoAvailable.value = state == EditTextState.SUCCESS
isMemoAvailable.value = state != EditTextState.OVER
checkIsFinishAvailable()
}

fun checkIsFinishAvailable() {
isFinishAvailable.value =
isTodoAvailable.value == true && isMemoAvailable.value == true && participantModelList.any { it.isSelected }
isTodoAvailable.value == true && isMemoAvailable.value == true && !endDate.value.isNullOrEmpty() && participantModelList.any { it.isSelected }
}

fun postToCreateTodoFromServer() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,17 @@ import android.content.Intent
import android.os.Bundle
import android.view.View
import androidx.activity.viewModels
import androidx.core.view.isVisible
import androidx.lifecycle.flowWithLifecycle
import androidx.lifecycle.lifecycleScope
import com.going.presentation.R
import com.going.presentation.databinding.ActivityTodoDetailBinding
import com.going.presentation.todo.create.TodoCreateActivity
import com.going.ui.base.BaseActivity
import com.going.ui.extension.colorOf
import com.going.ui.extension.drawableOf
import com.going.ui.extension.setOnSingleClickListener
import com.going.ui.extension.stringOf
import com.going.ui.extension.toast
import com.going.ui.state.EnumUiState
import com.going.ui.state.UiState
Expand Down Expand Up @@ -94,13 +98,21 @@ class TodoDetailActivity :

is UiState.Success -> {
if (isPublic) {
adapter.submitList(state.data)
adapter.submitList(state.data.allocators)
} else {
with(binding) {
rvOurTodoDetailPerson.visibility = View.INVISIBLE
layoutMyTodoCreatePerson.visibility = View.VISIBLE
}
}
if (state.data.memo.isBlank()) {
with(binding) {
etTodoCreateMemo.background = drawableOf(R.drawable.shape_rect_4_gray200_line)
etTodoCreateMemo.text = stringOf(R.string.my_todo_create_tv_memo_hint)
etTodoCreateMemo.setTextColor(colorOf(R.color.gray_200))
tvTodoMemoCounter.isVisible = false
}
}
}

is UiState.Failure -> toast(getString(R.string.server_error))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.going.domain.entity.response.TodoAllocatorModel
import com.going.domain.entity.response.TodoDetailModel
import com.going.domain.repository.TodoRepository
import com.going.ui.state.EnumUiState
import com.going.ui.state.UiState
Expand All @@ -22,8 +23,8 @@ class TodoDetailViewModel @Inject constructor(
val endDate = MutableLiveData("")
val memo = MutableLiveData("")

private val _todoDetailState = MutableStateFlow<UiState<List<TodoAllocatorModel>>>(UiState.Empty)
val todoDetailState: StateFlow<UiState<List<TodoAllocatorModel>>> = _todoDetailState
private val _todoDetailState = MutableStateFlow<UiState<TodoDetailModel>>(UiState.Empty)
val todoDetailState: StateFlow<UiState<TodoDetailModel>> = _todoDetailState

private val _todoDeleteState = MutableStateFlow<EnumUiState>(EnumUiState.EMPTY)
val todoDeleteState: StateFlow<EnumUiState> = _todoDeleteState
Expand All @@ -36,7 +37,7 @@ class TodoDetailViewModel @Inject constructor(
todo.value = response.title
endDate.value = response.endDate
memo.value = response.memo
_todoDetailState.value = UiState.Success(response.allocators)
_todoDetailState.value = UiState.Success(response)
}
.onFailure {
_todoDetailState.value = UiState.Failure(it.message.toString())
Expand Down
9 changes: 9 additions & 0 deletions presentation/src/main/res/drawable/ic_dropdown_gray700.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="25dp"
android:height="24dp"
android:viewportWidth="25"
android:viewportHeight="24">
<path
android:pathData="M11.765,16.205C12.161,16.633 12.839,16.633 13.235,16.205L17.878,11.179C18.469,10.538 18.015,9.5 17.143,9.5H7.857C6.985,9.5 6.531,10.538 7.122,11.179L11.765,16.205Z"
android:fillColor="#1D1F29"/>
</vector>

0 comments on commit 238cce8

Please sign in to comment.