-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
6349bb1
commit 10422f9
Showing
7 changed files
with
282 additions
and
118 deletions.
There are no files selected for viewing
5 changes: 5 additions & 0 deletions
5
core/designsystem/src/main/java/com/dongguk/telepigeon/design/system/mapper/QnaTypeMapper.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package com.dongguk.telepigeon.design.system.mapper | ||
|
||
import com.dongguk.telepigeon.design.system.type.QnaType | ||
|
||
fun String.toQnaType(): QnaType = QnaType.valueOf(this) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 7 additions & 0 deletions
7
domain/src/main/java/com/dongguk/telepigeon/domain/model/CheckQuestionEntity.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
package com.dongguk.telepigeon.domain.model | ||
|
||
data class CheckQuestionEntity( | ||
val id: Int, | ||
val content: String, | ||
val isPenalty: Boolean, | ||
) |
9 changes: 9 additions & 0 deletions
9
domain/src/main/java/com/dongguk/telepigeon/domain/model/QuestionAnswerEntity.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
package com.dongguk.telepigeon.domain.model | ||
|
||
data class QuestionAnswerEntity( | ||
val questionerName: String, | ||
val respondentName: String, | ||
val questionContent: String, | ||
val answerContent: String, | ||
val answerImage: String, | ||
) |
82 changes: 81 additions & 1 deletion
82
feature/src/main/java/com/dongguk/telepigeon/feature/main/qna/QnaFragment.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,87 @@ | ||
package com.dongguk.telepigeon.feature.main.qna | ||
|
||
import android.os.Bundle | ||
import android.view.View | ||
import androidx.fragment.app.viewModels | ||
import androidx.navigation.fragment.findNavController | ||
import coil.load | ||
import com.dongguk.telepigeon.design.system.mapper.toQnaType | ||
import com.dongguk.telepigeon.design.system.type.AppBarType | ||
import com.dongguk.telepigeon.design.system.type.QnaType | ||
import com.dongguk.telepigeon.design.system.type.TelePigeonQnaEditTextType | ||
import com.dongguk.telepigeon.feature.databinding.FragmentQnaBinding | ||
import com.dongguk.telepigeon.feature.main.main.MainFragment.Companion.QNA_TYPE | ||
import com.dongguk.telpigeon.core.ui.base.BindingFragment | ||
import com.dongguk.telpigeon.core.ui.util.fragment.stringOf | ||
|
||
class QnaFragment : BindingFragment<FragmentQnaBinding>({ FragmentQnaBinding.inflate(it) }) { | ||
} | ||
private val qnaViewModel by viewModels<QnaViewModel>() | ||
|
||
override fun onViewCreated( | ||
view: View, | ||
savedInstanceState: Bundle?, | ||
) { | ||
super.onViewCreated(view, savedInstanceState) | ||
|
||
initLayout() | ||
setAppBar() | ||
requireArguments().getString(QNA_TYPE)?.toQnaType()?.let { setQnaType(it) } | ||
} | ||
|
||
private fun initLayout() { | ||
with(binding) { | ||
etQnaQuestion.initLayout(qnaEditTextType = TelePigeonQnaEditTextType.Q) | ||
etQnaQuestion.editText.isEnabled = false | ||
etQnaAnswer.initLayout(qnaEditTextType = TelePigeonQnaEditTextType.A) | ||
} | ||
} | ||
|
||
private fun setAppBar() { | ||
binding.appbarQna.initLayout(appBarType = AppBarType.X) | ||
binding.appbarQna.binding.ivAppBarTelepigeonX.setOnClickListener { | ||
findNavController().popBackStack() | ||
} | ||
} | ||
|
||
private fun setQnaType(qnaType: QnaType) { | ||
with(binding) { | ||
tvQnaTitle.text = stringOf(qnaType.title) | ||
tvQnaDescription.text = stringOf(qnaType.description) | ||
btnQna.text = stringOf(qnaType.btnText) | ||
} | ||
|
||
when (qnaType) { | ||
QnaType.SURVIVAL -> { | ||
with(binding) { | ||
ivQnaPicture.visibility = View.INVISIBLE | ||
etQnaQuestion.editText.setText(qnaViewModel.dummyCheckQuestionEntity.content) | ||
ivQnaWarning.visibility = if (qnaViewModel.dummyCheckQuestionEntity.isPenalty) View.VISIBLE else View.INVISIBLE | ||
tvQnaWarning.visibility = if (qnaViewModel.dummyCheckQuestionEntity.isPenalty) View.VISIBLE else View.INVISIBLE | ||
} | ||
} | ||
|
||
QnaType.CHECK_ANSWER -> { | ||
with(binding) { | ||
etQnaAnswer.editText.isEnabled = false | ||
layoutQnaAddPicture.visibility = View.GONE | ||
etQnaQuestion.editText.setText(qnaViewModel.dummyQuestionAnswerEntity.questionContent) | ||
etQnaAnswer.editText.setText(qnaViewModel.dummyQuestionAnswerEntity.answerContent) | ||
ivQnaPicture.load(qnaViewModel.dummyQuestionAnswerEntity.answerImage) | ||
ivQnaWarning.visibility = View.INVISIBLE | ||
tvQnaWarning.visibility = View.INVISIBLE | ||
} | ||
} | ||
} | ||
|
||
setBtnQnaClickListener(qnaType = qnaType) | ||
} | ||
|
||
private fun setBtnQnaClickListener(qnaType: QnaType) { | ||
binding.btnQna.setOnClickListener { | ||
when (qnaType) { | ||
QnaType.CHECK_ANSWER -> findNavController().popBackStack() | ||
QnaType.SURVIVAL -> Unit | ||
} | ||
} | ||
} | ||
} |
28 changes: 28 additions & 0 deletions
28
feature/src/main/java/com/dongguk/telepigeon/feature/main/qna/QnaViewModel.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
package com.dongguk.telepigeon.feature.main.qna | ||
|
||
import androidx.lifecycle.ViewModel | ||
import com.dongguk.telepigeon.domain.model.CheckQuestionEntity | ||
import com.dongguk.telepigeon.domain.model.QuestionAnswerEntity | ||
import dagger.hilt.android.lifecycle.HiltViewModel | ||
import javax.inject.Inject | ||
|
||
@HiltViewModel | ||
class QnaViewModel | ||
@Inject | ||
constructor() : ViewModel() { | ||
val dummyCheckQuestionEntity = | ||
CheckQuestionEntity( | ||
id = 1, | ||
content = "오늘 점심은 무슨 음식을 먹었나요?", | ||
isPenalty = true, | ||
) | ||
|
||
val dummyQuestionAnswerEntity = | ||
QuestionAnswerEntity( | ||
questionerName = "김둘기", | ||
respondentName = "둘기맘", | ||
questionContent = "오늘 점심은 무슨 음식을 먹었나요?", | ||
answerContent = "분식을 먹었어요! 맛있었어요!", | ||
answerImage = "https://github.com/avatars/u/103172971?v=4", | ||
) | ||
} |
Oops, something went wrong.