ошибка у тебя в определении Runnable
Runnable {
@Override
fun run() {
В котлине так не пишут. Здесь ты объявил лямбду, а внутри неё - функцию run. Override просто игнорируется. this будет объемлющим классом.
Правильно будет так
object: Runnable {
override fun run() {
handler.postDelayed(this)
}
}
То, что ты хотел сделать, это лямбда, реализующая джавовый SAM-интерфейс. Так делать можно, если тебе внутри не нужен this. Выглядеть будет так:
Runnable {
//тут код, который должен быть в run()
}