Skip to content

Commit 53d321c

Browse files
BlackDizelAlexandr
andauthored
add suspension off mode (#109)
Co-authored-by: Alexandr <alexandrdevmisc@yandex.com>
1 parent deda1a4 commit 53d321c

File tree

5 files changed

+14
-0
lines changed

5 files changed

+14
-0
lines changed

lib/domain/data_source/models/suspension_mode.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import 'package:meta/meta.dart';
77
sealed class SuspensionMode with EquatableMixin {
88
const SuspensionMode({required this.id});
99

10+
const factory SuspensionMode.off() = _OffSuspensionMode;
1011
const factory SuspensionMode.low() = _LowSuspensionMode;
1112
const factory SuspensionMode.highway() = _HighwaySuspensionMode;
1213
const factory SuspensionMode.offRoad() = _OffRoadSuspensionMode;
@@ -19,6 +20,7 @@ sealed class SuspensionMode with EquatableMixin {
1920
}
2021

2122
static const List<SuspensionMode> values = [
23+
SuspensionMode.off(),
2224
SuspensionMode.low(),
2325
SuspensionMode.highway(),
2426
SuspensionMode.offRoad(),
@@ -34,12 +36,14 @@ sealed class SuspensionMode with EquatableMixin {
3436
static SuspensionMode get random => values[Random().nextInt(values.length)];
3537

3638
T when<T>({
39+
required T Function() off,
3740
required T Function() low,
3841
required T Function() highway,
3942
required T Function() offRoad,
4043
required T Function(int value) manual,
4144
}) {
4245
return switch (this) {
46+
_OffSuspensionMode() => off(),
4347
_LowSuspensionMode() => low(),
4448
_HighwaySuspensionMode() => highway(),
4549
_OffRoadSuspensionMode() => offRoad(),
@@ -49,12 +53,14 @@ sealed class SuspensionMode with EquatableMixin {
4953

5054
T maybeWhen<T>({
5155
required T Function() orElse,
56+
T Function()? off,
5257
T Function()? low,
5358
T Function()? highway,
5459
T Function()? offRoad,
5560
T Function(int value)? manual,
5661
}) {
5762
return switch (this) {
63+
_OffSuspensionMode() => off?.call() ?? orElse(),
5864
_LowSuspensionMode() => low?.call() ?? orElse(),
5965
_HighwaySuspensionMode() => highway?.call() ?? orElse(),
6066
_OffRoadSuspensionMode() => offRoad?.call() ?? orElse(),
@@ -67,6 +73,10 @@ sealed class SuspensionMode with EquatableMixin {
6773
List<Object?> get props => [id];
6874
}
6975

76+
final class _OffSuspensionMode extends SuspensionMode {
77+
const _OffSuspensionMode() : super(id: 0);
78+
}
79+
7080
final class _LowSuspensionMode extends SuspensionMode {
7181
const _LowSuspensionMode() : super(id: 1);
7282
}

lib/l10n/arb/app_en.arb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,7 @@
304304
"errorSwitchingSuspensionModeMessage": "Error switching suspension mode",
305305
"errorGettingManualValueMessage": "Error getting manual mode value",
306306
"errorSettingManualValueMessage": "Error setting manual mode value",
307+
"offSuspensionMode": "Off",
307308
"lowSuspensionMode": "Low",
308309
"highwaySuspensionMode": "Highway",
309310
"offRoadSuspensionMode": "Off road",

lib/l10n/arb/app_ru.arb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,7 @@
304304
"errorSwitchingSuspensionModeMessage": "Ошибка при переключении режима подвески",
305305
"errorGettingManualValueMessage": "Ошибка при получении значения ручного режима",
306306
"errorSettingManualValueMessage": "Ошибка при установке значения ручного режима",
307+
"offSuspensionMode": "Выключен",
307308
"lowSuspensionMode": "Заниженный",
308309
"highwaySuspensionMode": "Шоссе",
309310
"offRoadSuspensionMode": "Оффроуд",

lib/presentation/screens/general/widgets/suspension_control_button.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ class SuspensionControlButton extends StatelessWidget {
2424
label: Center(
2525
child: Text(
2626
state.payload.when(
27+
off: () => context.l10n.offSuspensionMode,
2728
low: () => context.l10n.lowSuspensionMode,
2829
highway: () => context.l10n.highwaySuspensionMode,
2930
offRoad: () => context.l10n.offRoadSuspensionMode,

lib/presentation/screens/general/widgets/suspension_control_dialog.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ class _SuspensionControlDialogState extends State<SuspensionControlDialog> {
7878
},
7979
title: Text(
8080
mode.when(
81+
off: () => context.l10n.offSuspensionMode,
8182
low: () => context.l10n.lowSuspensionMode,
8283
highway: () => context.l10n.highwaySuspensionMode,
8384
offRoad: () => context.l10n.offRoadSuspensionMode,

0 commit comments

Comments
 (0)