Skip to content

Instantly share code, notes, and snippets.

@WakkyFree
Last active February 1, 2021 13:41
Show Gist options
  • Save WakkyFree/3b571f5482c5bbb28f19c111636eb370 to your computer and use it in GitHub Desktop.
Save WakkyFree/3b571f5482c5bbb28f19c111636eb370 to your computer and use it in GitHub Desktop.
with vibration
package com.example.cupnoodletimer
import android.content.Context
import android.os.Bundle
import android.os.CountDownTimer
import android.os.VibrationEffect
import android.os.Vibrator
import android.widget.Button
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
val TIMERTIME: Long = 180000;
lateinit var timerText: TextView
lateinit var timer: CountDownTimer
var isRunning: Boolean = false;
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val startButton: Button = findViewById(R.id.buttonStart)
val vibrator = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
startButton.setOnClickListener {
if (isRunning) {
timer.cancel()
setTime(TIMERTIME)
isRunning = false
startButton.text = "START"
} else {
timer = object : CountDownTimer(TIMERTIME, 1000) {
override fun onTick(millisUntilFinished: Long) {
setTime(millisUntilFinished)
}
override fun onFinish() {
setTime(0)
isRunning = false
startButton.text = "RESTART"
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
val vibrationEffect = VibrationEffect.createOneShot(5000, VibrationEffect.DEFAULT_AMPLITUDE)
vibrator.vibrate(vibrationEffect)
} else {
vibrator.vibrate(5000)
}
}
}
timer.start()
isRunning = true
startButton.text = "RESET"
}
}
}
private fun setTime(t: Long) {
timerText = findViewById(R.id.textViewTime)
var time: Long = t
var minutes: Long = (time / 1000) / 60
var seconds: Long = (time / 1000) % 60
timerText.setText("%d:%02d".format(minutes, seconds))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment