Click V2 adjustments

This commit is contained in:
Jonas Bark
2025-10-27 14:05:09 +01:00
parent bb1ae4e616
commit 2a09d550e5
5 changed files with 50 additions and 27 deletions

View File

@@ -71,7 +71,7 @@ class Connection {
if (kDebugMode) {
print('Scan result: ${result.name} - ${result.deviceId}');
}
final scanResult = BluetoothDevice.fromScanResult(result);
if (scanResult != null) {
@@ -99,7 +99,14 @@ class Connection {
device.processCharacteristic(characteristicUuid, value);
}
};
// ...
UniversalBle.onConnectionChange = (String deviceId, bool isConnected, String? error) {
final device = bluetoothDevices.firstOrNullWhere((e) => e.device.deviceId == deviceId);
if (device != null && !isConnected) {
// allow reconnection
_lastScanResult.removeWhere((d) => d.deviceId == deviceId);
}
};
}
Future<void> performScanning() async {

View File

@@ -124,8 +124,6 @@ class ZwiftButtons {
static const ControllerButton shiftDownLeft = ControllerButton(
'shiftDownLeft',
action: InGameAction.shiftDown,
icon: Icons.remove,
color: Colors.black,
);
static const ControllerButton powerUpLeft = ControllerButton('powerUpLeft', action: InGameAction.shiftDown);

View File

@@ -7,7 +7,22 @@ import 'package:swift_control/pages/markdown.dart';
import 'package:swift_control/widgets/warning.dart';
class ZwiftClickV2 extends ZwiftRide {
ZwiftClickV2(super.scanResult) : super(isBeta: true);
ZwiftClickV2(super.scanResult)
: super(
isBeta: true,
availableButtons: [
ZwiftButtons.navigationLeft,
ZwiftButtons.navigationRight,
ZwiftButtons.navigationUp,
ZwiftButtons.navigationDown,
ZwiftButtons.a,
ZwiftButtons.b,
ZwiftButtons.y,
ZwiftButtons.z,
ZwiftButtons.shiftUpLeft,
ZwiftButtons.shiftUpRight,
],
);
@override
List<int> get startCommand => ZwiftConstants.RIDE_ON + ZwiftConstants.RESPONSE_START_CLICK_V2;

View File

@@ -18,28 +18,30 @@ class ZwiftRide extends ZwiftDevice {
/// analog drift or light touches.
static const int analogPaddleThreshold = 25;
ZwiftRide(super.scanResult, {super.isBeta})
ZwiftRide(super.scanResult, {super.isBeta, List<ControllerButton>? availableButtons})
: super(
availableButtons: [
ZwiftButtons.navigationLeft,
ZwiftButtons.navigationRight,
ZwiftButtons.navigationUp,
ZwiftButtons.navigationDown,
ZwiftButtons.a,
ZwiftButtons.b,
ZwiftButtons.y,
ZwiftButtons.z,
ZwiftButtons.shiftUpLeft,
ZwiftButtons.shiftDownLeft,
ZwiftButtons.shiftUpRight,
ZwiftButtons.shiftDownRight,
ZwiftButtons.powerUpLeft,
ZwiftButtons.powerUpRight,
ZwiftButtons.onOffLeft,
ZwiftButtons.onOffRight,
ZwiftButtons.paddleLeft,
ZwiftButtons.paddleRight,
],
availableButtons:
availableButtons ??
[
ZwiftButtons.navigationLeft,
ZwiftButtons.navigationRight,
ZwiftButtons.navigationUp,
ZwiftButtons.navigationDown,
ZwiftButtons.a,
ZwiftButtons.b,
ZwiftButtons.y,
ZwiftButtons.z,
ZwiftButtons.shiftUpLeft,
ZwiftButtons.shiftDownLeft,
ZwiftButtons.shiftUpRight,
ZwiftButtons.shiftDownRight,
ZwiftButtons.powerUpLeft,
ZwiftButtons.powerUpRight,
ZwiftButtons.onOffLeft,
ZwiftButtons.onOffRight,
ZwiftButtons.paddleLeft,
ZwiftButtons.paddleRight,
],
);
@override

View File

@@ -1,3 +1,4 @@
import 'package:dartx/dartx.dart';
import 'package:flutter/material.dart';
import 'package:swift_control/bluetooth/devices/elite/elite_square.dart';
import 'package:swift_control/bluetooth/devices/elite/elite_sterzo.dart';
@@ -65,5 +66,5 @@ class ControllerButton {
...ZwiftButtons.values,
...EliteSquareButtons.values,
...WahooKickrShiftButtons.values,
];
].distinct().toList();
}