From 5c63e0ddccd5112dcc88c473c410ab48775cb9d1 Mon Sep 17 00:00:00 2001
From: rkdmf1026 <50603273+rkdmf1026@users.noreply.github.com>
Date: Mon, 17 Jul 2023 18:57:13 +0900
Subject: [PATCH] Add MissionResultActivity
---
app/src/main/AndroidManifest.xml | 4 +
.../missionresult/MissionResultActivity.kt | 102 +++++++
.../res/layout/activity_mission_result.xml | 268 ++++++++++++++++++
3 files changed, 374 insertions(+)
create mode 100644 app/src/main/java/sopt/uni/presentation/shortgame/missionresult/MissionResultActivity.kt
create mode 100644 app/src/main/res/layout/activity_mission_result.xml
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1d1bfa62..a8df286c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -123,6 +123,10 @@
android:exported="false"
android:screenOrientation="portrait" />
+
\ No newline at end of file
diff --git a/app/src/main/java/sopt/uni/presentation/shortgame/missionresult/MissionResultActivity.kt b/app/src/main/java/sopt/uni/presentation/shortgame/missionresult/MissionResultActivity.kt
new file mode 100644
index 00000000..cba579ec
--- /dev/null
+++ b/app/src/main/java/sopt/uni/presentation/shortgame/missionresult/MissionResultActivity.kt
@@ -0,0 +1,102 @@
+package sopt.uni.presentation.shortgame.missionresult
+
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import android.view.View
+import android.widget.TextView
+import androidx.activity.viewModels
+import androidx.databinding.BindingAdapter
+import sopt.uni.R
+import sopt.uni.data.entity.shortgame.MissionResultState
+import sopt.uni.databinding.ActivityMissionResultBinding
+import sopt.uni.util.binding.BindingActivity
+import sopt.uni.util.extension.setOnSingleClickListener
+
+class MissionResultActivity :
+ BindingActivity(R.layout.activity_mission_result) {
+
+ private val viewModel: MissionResultViewModel by viewModels()
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(binding.root)
+ binding.missionResultViewModel = viewModel
+ initViewModelObserve()
+ initClickListener()
+ }
+
+ private fun initViewModelObserve() {
+ viewModel.apply {
+ myMissionResultState.observe(this@MissionResultActivity) {
+ setResultImageText(it)
+ setButtonVisible(it)
+ }
+ partnerMissionResult.observe(this@MissionResultActivity) {
+ setPartnerMissionContent(it == null)
+ }
+ }
+ }
+
+ private fun setResultImageText(state: MissionResultState) {
+ val imageArray = this.resources.obtainTypedArray(R.array.result_state_image)
+ val stringArray = this.resources.obtainTypedArray(R.array.result_state_text)
+ binding.ivMissionResult.setImageResource(imageArray.getResourceId(state.order, 0))
+ binding.tvMyMissionResult.text = stringArray.getString(state.order)
+ }
+
+ private fun setButtonVisible(state: MissionResultState) {
+ when (state) {
+ MissionResultState.WIN -> binding.btnGoWish.visibility = View.VISIBLE
+
+ else -> binding.btnGoHome.visibility = View.VISIBLE
+ }
+ }
+
+ private fun setPartnerMissionContent(isEmpty: Boolean) {
+ if (isEmpty) {
+ binding.clCardPartnerMission.visibility = View.INVISIBLE
+ binding.clCardPartnerMissionEmpty.visibility = View.VISIBLE
+ } else {
+ binding.clCardPartnerMission.visibility = View.VISIBLE
+ binding.clCardPartnerMissionEmpty.visibility = View.INVISIBLE
+ }
+ }
+
+ private fun initClickListener() {
+ binding.apply {
+ ivClose.setOnSingleClickListener { finish() }
+ btnGoHome.setOnSingleClickListener { finish() }
+ btnGoWish.setOnClickListener { // TODO : 소원권 페이지 이동 }
+ }
+ }
+ }
+
+ companion object {
+ const val ROUND_GAME_ID = "ROUND_GAME_ID"
+
+ fun start(context: Context, roundGameId: Int) {
+ context.startActivity(getIntent(context, roundGameId))
+ }
+
+ private fun getIntent(context: Context, roundGameId: Int) =
+ Intent(context, MissionResultActivity::class.java).putExtra(
+ ROUND_GAME_ID,
+ roundGameId,
+ )
+
+ @JvmStatic
+ @BindingAdapter("setDateResult")
+ fun setDateResult(view: TextView, date: String?) {
+ if (date == null) {
+ view.text = view.context.getString(R.string.mission_result_failure)
+ view.background = view.context.getDrawable(R.drawable.wish_ment_pink_rectangle)
+ } else {
+ val dateString = date.split(" ")[1].substring(5)
+ view.text =
+ "$dateString ${view.context.getString(R.string.mission_result_complete)}"
+ view.background = view.context.getDrawable(R.drawable.wish_ment_green_rectangle)
+ }
+ }
+ }
+}
diff --git a/app/src/main/res/layout/activity_mission_result.xml b/app/src/main/res/layout/activity_mission_result.xml
new file mode 100644
index 00000000..27020c3b
--- /dev/null
+++ b/app/src/main/res/layout/activity_mission_result.xml
@@ -0,0 +1,268 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file