shareCodeStatus function

ShareCodeStatus shareCodeStatus(
  1. String input
)

Whether input is a valid code, a damaged one, or one from a newer app.

Implementation

ShareCodeStatus shareCodeStatus(String input) {
  final s = normalizeShareCode(input);
  if (s == null) return ShareCodeStatus.invalid;
  if (s.length == _longLength) {
    final bits = _bitsOf(s);
    if (crc16(bits.sublist(0, 109)) != _readBits(bits, 109, 16)) {
      return ShareCodeStatus.invalid;
    }
    if (_readBits(bits, 0, 4) > steeredCodeFormat) {
      return ShareCodeStatus.needsUpdate;
    }
  }
  return decodeShareCode(input) == null
      ? ShareCodeStatus.invalid
      : ShareCodeStatus.valid;
}