shareCodeStatus function
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;
}