TaskActivity.kt
2.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package com.paktalin.quickmax
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.paktalin.quickmax.answers.Answer
import com.paktalin.quickmax.answers.AnswerSet
import kotlinx.android.synthetic.main.activity_task.*
// TODO save state
class TaskActivity : AppCompatActivity() {
private lateinit var answerSet: AnswerSet
private var millisToSolve: Long = 4000
private var numDigits: Int = 3
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_task)
btn_back.setOnClickListener {
startActivity(
Intent(
this@TaskActivity,
MainActivity::class.java
)
)
}
retrieveExtras()
startNewRound()
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
// TODO save selection
// TODO save animation state
// TODO save timer
// TODO save button next state
// TODO save
}
internal fun startNewRound() {
answerSet = AnswerSet(
numDigits,
listOf(card_left_top, card_right_top, card_left_bottom, card_right_bottom)
)
addTimerFragment(supportFragmentManager, millisToSolve)
setUpCards()
removeButtonNextFragment(supportFragmentManager)
}
private fun retrieveExtras() {
numDigits = intent.getIntExtra("num_digits", 3)
millisToSolve = 1000 * intent.getIntExtra("sec_to_solve", 4).toLong()
}
private fun setUpCards() {
answerSet.forEach { answer ->
answer.card.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) processAnswer(answer)
}
answer.card.initial(this@TaskActivity, answer.value)
}
}
private fun processAnswer(answer: Answer) {
if (answer.correct) {
answer.card.markCorrect(this@TaskActivity)
(supportFragmentManager.findFragmentByTag("timer_fragment") as TimerFragment).cancelCorrect()
addButtonNextFragment(supportFragmentManager, true)
} else {
answer.card.markWrong(this@TaskActivity)
(supportFragmentManager.findFragmentByTag("timer_fragment") as TimerFragment).cancelWrong()
addButtonNextFragment(supportFragmentManager, false)
}
answerSet.forEach { answer -> answer.card.disable() }
}
fun onTimeOver() {
addButtonNextFragment(supportFragmentManager, false)
answerSet.forEach { answer -> answer.card.disable() }
}
}