21 lines
671 B
Dart
21 lines
671 B
Dart
import 'package:abawo_bt_app/model/shifter_types.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
|
|
final shifterDeviceTelemetryCacheProvider = StateNotifierProvider<
|
|
ShifterDeviceTelemetryCache, Map<String, ShifterDeviceTelemetry>>(
|
|
(ref) => ShifterDeviceTelemetryCache(),
|
|
);
|
|
|
|
class ShifterDeviceTelemetryCache
|
|
extends StateNotifier<Map<String, ShifterDeviceTelemetry>> {
|
|
ShifterDeviceTelemetryCache() : super(const {});
|
|
|
|
void upsert(String deviceId, ShifterDeviceTelemetry telemetry) {
|
|
final existing = state[deviceId];
|
|
state = {
|
|
...state,
|
|
deviceId: existing == null ? telemetry : existing.merge(telemetry),
|
|
};
|
|
}
|
|
}
|