onKeyPadPressed method

dynamic onKeyPadPressed(
  1. String x
)

Implementation

onKeyPadPressed(String x) {
  if (x == 'x') {
    if (numbers.value[focusedIndex.value].isEmpty) {
      numbers.value[max(focusedIndex.value - 1, 0)] = '';
      focusedIndex.value--;
      if (focusedIndex.value < 0) {
        focusedIndex.value = 0;
      }
    } else
      numbers.value[focusedIndex.value] = '';
  } else {
    numbers.value[focusedIndex.value] = x;
    if (focusedIndex.value != (length - 1)) {
      focusedIndex.value++;
    } else {
      numbers.refresh();
    }
    if (numbers.value.every(
      (e) => e.isNotEmpty && focusedIndex.value == (length - 1),
    )) {
      onCodeSubmitted.call(numbers.value.join()).then((isSuccess) async {
        if (!isSuccess) {
          showToast('Invalid activation code');
          await shake();
        }
      });
    }
  }
}