Compare commits

...

2 Commits

Author SHA1 Message Date
Jonas Bark
3343325195 adjust reinstating saved keymaps 2025-03-30 20:06:44 +02:00
Jonas Bark
edda16dc06 adjust reinstating saved keymaps 2025-03-30 19:30:34 +02:00
6 changed files with 32 additions and 7 deletions

View File

@@ -1,4 +1,7 @@
### 1.1.0 (2025-03-30)
### 1.1.4 (2025-03-30)
- another potential fix for #6
### 1.1.3 (2025-03-30)
- Windows: fix custom keyboard profile recreation after restart, also warn when choosing MyWhoosh profile (may fix #7)
- Zwift Ride: button map adjustments to prevent double shifting
- potential fix for #6

View File

@@ -10,7 +10,7 @@
<!-- legacy for Android 11 or lower -->
<uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"/>

View File

@@ -36,14 +36,18 @@ class Keymap {
];
}
static Keymap decode(List<String> data) {
static Keymap? decode(List<String> data) {
// decode from preferences
if (data.length < 4) {
return custom;
return null;
}
final name = data[0];
final keymap = values.firstWhere((element) => element.name == name, orElse: () => custom);
final keymap = values.firstOrNullWhere((element) => element.name == name);
if (keymap == null) {
return null;
}
if (keymap.name != custom.name) {
return keymap;
@@ -58,8 +62,10 @@ class Keymap {
physicalKey: PhysicalKeyboardKey(int.parse(data[4])),
logicalKey: LogicalKeyboardKey(int.parse(data[3])),
);
return keymap;
} else {
return null;
}
return keymap;
}
}

View File

@@ -19,6 +19,21 @@ class AccessibilityRequirement extends PlatformRequirement {
}
}
class LocationRequirement extends PlatformRequirement {
LocationRequirement() : super('Allow Location Permission (req. by Samsung devices');
@override
Future<void> call() async {
await Permission.locationWhenInUse.request();
}
@override
Future<void> getStatus() async {
final state = await Permission.locationWhenInUse.status;
status = state.isGranted;
}
}
class BluetoothScanRequirement extends PlatformRequirement {
BluetoothScanRequirement() : super('Allow Bluetooth Scan');

View File

@@ -32,6 +32,7 @@ Future<List<PlatformRequirement>> getRequirements() async {
list = [
BluetoothTurnedOn(),
AccessibilityRequirement(),
LocationRequirement(),
NotificationRequirement(),
BluetoothScanRequirement(),
BluetoothConnectRequirement(),

View File

@@ -1,7 +1,7 @@
name: swift_control
description: "SwiftControl - Control your virtual riding"
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 1.1.2+0
version: 1.1.4+0
environment:
sdk: ^3.7.0