import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Handler
import android.os.SystemClock
import android.widget.Button
import androidx.core.app.ComponentActivity
import androidx.core.app.ComponentActivity.ExtraData
import androidx.core.content.ContextCompat.getSystemService
import android.icu.lang.UCharacter.GraphemeClusterBreak.T
import android.widget.TextView
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
private var handler: Handler? = null
private var seconds = 0
private var minutes = 0
private var milliSeconds = 0
private var milliSecondTime = 0L
private var startTime = 0L
private var timeBuff = 0L
private var updateTime = 0L
private lateinit var textView: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button = findViewById<Button>(R.id.button)
textView = findViewById(R.id.text)
handler = Handler()
button.setOnClickListener {
startTime = SystemClock.uptimeMillis()
handler!!.postDelayed(runnable, 0)
}
}
private var runnable: Runnable = object : Runnable {
override fun run() {
milliSecondTime = SystemClock.uptimeMillis() - startTime
updateTime = timeBuff + milliSecondTime
seconds = (updateTime / 1000).toInt()
minutes = seconds / 60
seconds %= 60
milliSeconds = (updateTime % 1000).toInt()
textView.setText(
"" + minutes + ":"
+ String.format("%02d", seconds) + ":"
+ String.format("%03d", milliSeconds)
)
handler?.postDelayed(this, 0)
}
}
}