From 7b0cd65992a9fd6fb26604e6876f4068913649a1 Mon Sep 17 00:00:00 2001 From: Alexis Drai Date: Thu, 6 Oct 2022 09:25:06 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=83=EF=B8=8F=20Persist=20save=20bundle?= =?UTF-8?q?=20before=20system=20"destroys"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/fr/iut/pm/QuizActivity.kt | 42 +++++++++++++-------- app/src/main/res/values-fr-rFR/strings.xml | 1 - app/src/main/res/values/strings.xml | 1 - 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/fr/iut/pm/QuizActivity.kt b/app/src/main/java/fr/iut/pm/QuizActivity.kt index b450078..f2996aa 100644 --- a/app/src/main/java/fr/iut/pm/QuizActivity.kt +++ b/app/src/main/java/fr/iut/pm/QuizActivity.kt @@ -16,6 +16,7 @@ const val TAG = "MyQuizActivity" class QuizActivity : AppCompatActivity() { private var questionIndex: Int = 0 + private val QUESTION_INDEX: String = "questionIndex" override fun onCreate(savedInstanceState: Bundle?) { Log.println(Log.INFO, TAG, "Creating...") @@ -23,13 +24,19 @@ class QuizActivity : AppCompatActivity() { setContentView(R.layout.activity_quiz) val questions = Stub().loadQuestions(resources) - val textViewQuestion = findViewById(R.id.textViewQuestion) - nextQuestion(textViewQuestion, questions) + if (savedInstanceState != null) { + with(savedInstanceState) { + Log.println(Log.WARN, TAG, "LOADING...") + questionIndex = getInt(QUESTION_INDEX) + } + } + + showQuestion(textViewQuestion, questions) findViewById(R.id.btnNext).setOnClickListener { - nextQuestion(textViewQuestion, questions) + showNextQuestion(textViewQuestion, questions) } } @@ -44,7 +51,6 @@ class QuizActivity : AppCompatActivity() { } override fun onPause() { - Log.println(Log.INFO, TAG, "Pausing...") super.onPause() } @@ -61,29 +67,36 @@ class QuizActivity : AppCompatActivity() { override fun onSaveInstanceState(outState: Bundle) { // Save the user's current game state - Log.println(Log.INFO, TAG, "SAVING?...") + Log.println(Log.WARN, TAG, "SAVING...") outState.run { -// putInt(myVar, savedVar) + println("saving idx: $questionIndex") + putInt(QUESTION_INDEX, questionIndex) } - - // Always call the superclass so it can save the view hierarchy state super.onSaveInstanceState(outState) } - private fun assignAnswerToButton(btn: Button, toast: String) { btn.setOnClickListener { Toast.makeText(this, toast, Toast.LENGTH_SHORT).show() } } - private fun nextQuestion(textView: TextView, questions: Collection) { - - val obj: TrueFalseQuestion = questions.elementAt(questionIndex) - - if(questionIndex >= questions.size - 1) { + private fun nextIndex(size: Int) { + if (questionIndex >= size - 1) { questionIndex = 0 + } else { + questionIndex++ } + } + + + private fun showNextQuestion(textView: TextView, questions: Collection) { + nextIndex(questions.size) + showQuestion(textView, questions) + } + + private fun showQuestion(textView: TextView, questions: Collection) { + val obj: TrueFalseQuestion = questions.elementAt(questionIndex) textView.text = obj.question @@ -105,6 +118,5 @@ class QuizActivity : AppCompatActivity() { wrong, resources.getString(R.string.wrong_answer) ) - } } \ No newline at end of file diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index ed73f4a..5241f2e 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -8,7 +8,6 @@ Oui! Kwô? (SUIVANTE) - RECOMMENCER Question 1 Question 2 Question 3 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 81ac470..042043e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -10,5 +10,4 @@ Yo mama… My mama… Their mama… - RESTART \ No newline at end of file