From 94f5d903aee797c14d6228c9807e20bc743a85d6 Mon Sep 17 00:00:00 2001 From: Suy Date: Sat, 13 Mar 2021 07:07:17 +0700 Subject: [PATCH] -fixed bug in list answers achievement feature --- app/build.gradle | 4 +- .../dialog/BottomSheetAlertDialog.kt | 4 +- .../squizwardapp/ui/result/AnswerAdapter.kt | 48 +++++++++++++------ .../squizwardapp/ui/result/ResultActivity.kt | 29 +---------- 4 files changed, 39 insertions(+), 46 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 13462a6..bc6ea40 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.suy.squizwardapp" minSdkVersion 21 targetSdkVersion 30 - versionCode 1 - versionName "1.0" + versionCode 2 + versionName "1.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/app/src/main/java/com/suy/squizwardapp/dialog/BottomSheetAlertDialog.kt b/app/src/main/java/com/suy/squizwardapp/dialog/BottomSheetAlertDialog.kt index 2e1135d..3a2f87a 100644 --- a/app/src/main/java/com/suy/squizwardapp/dialog/BottomSheetAlertDialog.kt +++ b/app/src/main/java/com/suy/squizwardapp/dialog/BottomSheetAlertDialog.kt @@ -27,9 +27,7 @@ class BottomSheetAlertDialog(private val listener: AlertListener) : BottomSheetD } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - when (title != null) { - true -> binding?.tvTitleBtsAlert?.text = getString(title ?: 0) - } + if (title != null) binding?.tvTitleBtsAlert?.text = getString(title ?: 0) binding?.btnNoBtsAlert?.setOnClickListener { dismiss() } binding?.btnYesBtsAlert?.setOnClickListener { listener.onAlertClicked(true) } } diff --git a/app/src/main/java/com/suy/squizwardapp/ui/result/AnswerAdapter.kt b/app/src/main/java/com/suy/squizwardapp/ui/result/AnswerAdapter.kt index 48b114c..29ed316 100644 --- a/app/src/main/java/com/suy/squizwardapp/ui/result/AnswerAdapter.kt +++ b/app/src/main/java/com/suy/squizwardapp/ui/result/AnswerAdapter.kt @@ -14,6 +14,7 @@ import com.suy.squizwardapp.utils.visible class AnswerAdapter(private val list: List) : RecyclerView.Adapter() { + private val listAnswerOpened by lazy { mutableListOf() } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { val binding = ItemAnswerBinding.inflate(LayoutInflater.from(parent.context), parent, false) return ViewHolder(binding) @@ -45,31 +46,49 @@ class AnswerAdapter(private val list: List) : } } tvQuestionAnswer.text = result.question?.questionText + when (listAnswerOpened.contains(adapterPosition)) { + true -> detailAnswerVisible(binding) + false -> detailAnswerHiden(binding) + } itemView.setOnClickListener { when (containerDetailAnswer.isVisible) { false -> { - ivArrowAnswer.setImageDrawable( - ContextCompat.getDrawable( - itemView.context, - R.drawable.ic_drop_up - ) - ) - containerDetailAnswer.visible() + listAnswerOpened.add(adapterPosition) + detailAnswerVisible(binding) } true -> { - ivArrowAnswer.setImageDrawable( - ContextCompat.getDrawable( - itemView.context, - R.drawable.ic_drop_down - ) - ) - containerDetailAnswer.gone() + listAnswerOpened.remove(adapterPosition) + detailAnswerHiden(binding) } } } } } + private fun detailAnswerHiden(binding: ItemAnswerBinding) { + with(binding) { + ivArrowAnswer.setImageDrawable( + ContextCompat.getDrawable( + itemView.context, + R.drawable.ic_drop_down + ) + ) + containerDetailAnswer.gone() + } + } + + private fun detailAnswerVisible(binding: ItemAnswerBinding) { + with(binding) { + ivArrowAnswer.setImageDrawable( + ContextCompat.getDrawable( + itemView.context, + R.drawable.ic_drop_up + ) + ) + containerDetailAnswer.visible() + } + } + private fun showDetailAnswer(result: Result?) { val correctAnswer = result?.question?.correctAnswer val userAnswer = result?.userAnswer @@ -139,6 +158,7 @@ class AnswerAdapter(private val list: List) : adapterPosition.plus(1), "Incorrect" ) + tvUserAnswer.visible() tvUserAnswer.text = itemView.context.getString(R.string.text_user_answer_empty) tvCorrectAnswer.text = itemView.context.getString( R.string.text_correction_right_answer_value, diff --git a/app/src/main/java/com/suy/squizwardapp/ui/result/ResultActivity.kt b/app/src/main/java/com/suy/squizwardapp/ui/result/ResultActivity.kt index 10c69a9..b597f42 100644 --- a/app/src/main/java/com/suy/squizwardapp/ui/result/ResultActivity.kt +++ b/app/src/main/java/com/suy/squizwardapp/ui/result/ResultActivity.kt @@ -14,7 +14,7 @@ import kotlin.math.roundToInt class ResultActivity : BaseActivity() { companion object { - const val EXTRA_CATEGORY = "id" + const val EXTRA_CATEGORY = "category" var answers = mutableMapOf() } @@ -96,32 +96,7 @@ class ResultActivity : BaseActivity() { supportActionBar?.elevation = 0F supportActionBar?.title = getString(R.string.title_achievement) } - //private fun calculateScore(correctAnswer: String, userAnswer: String?) { - // when (userAnswer.isNullOrEmpty()) { - // true -> totalWrongAnswer += 1 - // false -> when (correctAnswer.contains(",")) { - // true -> { - // var isSame = true - // val splitUserAnswer = userAnswer.split(",") - // splitUserAnswer.forEach { - // isSame = correctAnswer.contains(it) - // if (!isSame) { - // totalWrongAnswer += 1 - // return - // } - // } - // when (userAnswer.length == correctAnswer.length && isSame) { - // true -> totalCorrectAnswer += 1 - // false -> totalWrongAnswer += 1 - // } - // } - // false -> when (correctAnswer.contains(userAnswer)) { - // true -> totalCorrectAnswer += 1 - // false -> totalWrongAnswer += 1 - // } - // } - // } - //} + override fun onDestroy() { super.onDestroy() answers.clear()