diff --git a/app/src/main/java/com/paktalin/quickmax/MainActivity.kt b/app/src/main/java/com/paktalin/quickmax/MainActivity.kt index 2323d62..c364425 100644 --- a/app/src/main/java/com/paktalin/quickmax/MainActivity.kt +++ b/app/src/main/java/com/paktalin/quickmax/MainActivity.kt @@ -13,33 +13,52 @@ class MainActivity : AppCompatActivity() { private var secToSolve: Int = 4 private var numDigits: Int = 3 private lateinit var checkedCard: MaterialCardView + private lateinit var cards: List<MaterialCardView> override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) - retrieveSharedPrefs() - seek_bar.setMinStartValue(secToSolve.toFloat()).apply() - seek_bar.setOnSeekbarChangeListener { n -> - seek_bar_value.text = resources.getString(R.string.time_to_solve, n.toString()) - secToSolve = n.toInt() + if (savedInstanceState == null) retrieveSharedPrefs() + else restoreInstanceState(savedInstanceState) + + checkedCard.isChecked = true + + seek_bar.apply { + setMinStartValue(secToSolve.toFloat()).apply() + setOnSeekbarChangeListener { n -> + seek_bar_value.text = resources.getString(R.string.time_to_solve, n.toString()) + secToSolve = n.toInt() + } } - card_2_digits.setOnClickListener(cardOnClickListener) - card_3_digits.setOnClickListener(cardOnClickListener) - card_4_digits.setOnClickListener(cardOnClickListener) + cards = listOf(card_2_digits, card_3_digits, card_4_digits) + cards.forEach { card -> card.setOnClickListener(cardOnClickListener) } btn_play.setOnClickListener(playClickListener) } + private fun restoreInstanceState(savedInstanceState: Bundle) { + checkedCard = findViewById(savedInstanceState.getInt("checked_num_id")) + secToSolve = savedInstanceState.getInt("sec_to_solve") + numDigits = savedInstanceState.getInt("num_digits") + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + outState.putInt("num_digits", numDigits) + outState.putInt("sec_to_solve", secToSolve) + outState.putInt("checked_num_id", checkedCard.id) + } + private val cardOnClickListener = View.OnClickListener { card -> val cardM = card as MaterialCardView if (!cardM.isChecked) { checkedCard = cardM checkedCard.isChecked = true numDigits = numDigitsFromCard(checkedCard) - listOf(card_2_digits, card_3_digits, card_4_digits).forEach { c -> - if (c.id != cardM.id) + cards.forEach { c -> + if (c.id != checkedCard.id) c.isChecked = false } } @@ -64,11 +83,13 @@ class MainActivity : AppCompatActivity() { private fun retrieveSharedPrefs() { val prefs = getSharedPreferences("my_prefs", Context.MODE_PRIVATE) secToSolve = prefs.getInt("sec_to_solve", 4) - checkedCard = findViewById(prefs.getInt("checked_num_id", - R.id.card_3_digits - )) + checkedCard = findViewById( + prefs.getInt( + "checked_num_id", + R.id.card_3_digits + ) + ) numDigits = numDigitsFromCard(checkedCard) - checkedCard.isChecked = true } private fun numDigitsFromCard(card: MaterialCardView): Int {