У меня есть собственный Android TextView, который показывает количество времени, оставшееся в игре, через CountDownTimer.
class CountdownTextView(context: Context, attrs: AttributeSet) : TextView(context, attrs) {
private lateinit var countDownTimer: CountDownTimer
private lateinit var onFinishObservable: Observable<Unit>
fun setTime(initTime: Int) {
this.text = "$initTime:00"
countDownTimer = object : CountDownTimer((initTime *1000).toLong(), 1000) {
override fun onTick(millisUntilFinished: Long) {
val minutes = millisUntilFinished / 60000
val seconds = (millisUntilFinished % 60000) / 1000
if (seconds / 10 > 0) {
text = "$minutes:${(millisUntilFinished % 60000) / 1000}"
} else {
text = "$minutes:0${(millisUntilFinished % 60000) / 1000}"
}
}
override fun onFinish() {
}
}
fun startCountdown() {
countDownTimer.start()
}
}
Как настроить наблюдаемую, которая выдает значение при вызове метода onFinish() счетчика countDownTimer? Мне это нужно, чтобы в основном действии я мог подписаться на этот наблюдаемый объект и выполнить необходимые действия, когда истечет время обратного отсчета.