fix di2 initialization

This commit is contained in:
Jonas Bark
2025-11-06 18:45:46 +01:00
parent ce94aea51a
commit 5f03c072ff

View File

@@ -38,16 +38,22 @@ class ShimanoDi2 extends BluetoothDevice {
Future<void> processCharacteristic(String characteristic, Uint8List bytes) {
if (characteristic.toLowerCase() == ShimanoDi2Constants.D_FLY_CHANNEL_UUID) {
final channels = bytes.sublist(1);
// On first data reception, just initialize the state without triggering buttons
if (!_isInitialized) {
channels.forEachIndexed((int value, int index) {
final readableIndex = index + 1;
_lastButtons[index] = value;
getOrAddButton(
'D-Fly Channel $readableIndex',
() => ControllerButton('D-Fly Channel $readableIndex'),
);
});
_isInitialized = true;
return Future.value();
}
final clickedButtons = <ControllerButton>[];
channels.forEachIndexed((int value, int index) {