qapquiz / promptpay-dart

This is for generate PromptPay QR data. support e-wallet | identity/tax | phone number
MIT License
2 stars 8 forks source link

null safety - support #1

Closed TouYunG closed 3 years ago

TouYunG commented 3 years ago

ดีนะครับ ฝากอัพเดรทให้รองรับ null safe ครับ

qapquiz commented 3 years ago

@TouYunG หมายถึงอันนี้ใช่ไหมครับ https://dart.dev/null-safety/migration-guide หลัง ๆ ไม่ค่อยได้ตามเท่าไหร่ ถ้าทำอาจจะใช้เวลาหน่อย ลองดูของ https://github.com/AsUnDeRz/promptpay-dart ก่อนก็ได้นะครับ เห็นเขา migrate ขึ้น flutter 2 ไปแล้ว หรือถ้าจะ pull request มาก็ได้เหมือนกันครับ

TouYunG commented 3 years ago

ลองเอา crclib ออกครับ มันไม่ null-safe

String crc16(String data) { var bytes = Uint8List.fromList(data.codeUnits); const POLYNOMIAL = 0x1021; // CCITT const INIT_VALUE = 0xFFFF; // XMODEM final bitRange = Iterable.generate(8); var crc = INIT_VALUE; for (var byte in bytes) { crc ^= (byte << 8); for (var i in bitRange) { crc = (crc & 0x8000) != 0 ? (crc << 1) ^ POLYNOMIAL : crc << 1; } } var byteData = ByteData(2) ..setInt16(0, crc, Endian.little); // FIXME setInt16 or setUint16 var str = byteData.buffer.asUint8List().reversed.toList(); return hex.encode(str).toUpperCase(); }