Android comtesting si la input de text (hora) coincide con el formatting

Tengo dos campos de text que tienen como time de input (mm: ss) ¿Cómo creo un cheque (con un Toast, sé cómo hacer toast xD) para ver si coincide con ese formatting? Si no, pase las tostadas ? He estado intentando pero no he manejado nada.

No sé si necesitas más que esto, pero aquí es donde los paso:

val time = findViewById<NumberPicker>(R.id.time) as TextView val distance = findViewById<NumberPicker>(R.id.distance) as TextView val pace = findViewById<NumberPicker>(R.id.pace) as TextView calculate.setOnClickListener { when { time.text.isEmpty() && (distance.text.isNotEmpty() && pace.text.isNotEmpty()) -> calculatePace(null, distance.text.toString(), pace.text.toString()) distance.text.isEmpty() && (time.text.isNotEmpty() && pace.text.isNotEmpty()) -> calculatePace(time.text.toString(), null, pace.text.toString()) pace.text.isEmpty() && (time.text.isNotEmpty() && distance.text.isNotEmpty()) -> calculatePace(time.text.toString(), distance.text.toString(), null) else -> { Toast.makeText(this, "Please check all fields", Toast.LENGTH_SHORT).show() } } } 

¿Es esto suficiente o necesitas la function donde los uso? Gracias

=========

EDITAR:

Traté de crear esta function, pero ¿cómo paso mi edición ext aquí ahora? ¿Es correcto también?

 fun isTimeValid(time: String?): Boolean { val expression = "^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]\$" val pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE) val matcher = pattern.matcher(time) return matcher.matches() } 

testing esto.

  if (!Constants.isStringEmpty(str_time)&&isTimeValid(str_time)){ //// TODO: 10/6/2017 }else { if (Constants.isStringEmpty(str_time)){ edt_email.requestFocus(); Toast.makeText(this, "Enter Time.", Toast.LENGTH_SHORT).show(); } else if(!isTimeValid(str_time)){ edt_email.requestFocus(); Toast.makeText(this, "Enter Valid Time.", Toast.LENGTH_SHORT).show(); } } public static boolean isTimeValid(String time) { boolean isValid = false; String expression = "^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$"; CharSequence inputStr = time; Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(inputStr); if (matcher.matches()) { isValid = true; } return isValid; }