@@ -4,6 +4,7 @@ import 'package:flutter/foundation.dart';
44import 'package:flutter/gestures.dart' ;
55import 'package:flutter/material.dart' ;
66import 'package:flutter/services.dart' ;
7+ import 'package:shock_alarm_app/components/haptic_switch.dart' ;
78import 'package:shock_alarm_app/components/padded_card.dart' ;
89import 'package:shock_alarm_app/components/constrained_container.dart' ;
910import 'package:shock_alarm_app/components/predefined_spacing.dart' ;
@@ -751,7 +752,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
751752 mainAxisAlignment: MainAxisAlignment .spaceBetween,
752753 children: [
753754 Text ("Show option for random delay" ),
754- Switch (
755+ HapticSwitch (
755756 value: widget.manager.settings.showRandomDelay,
756757 key: ValueKey ("showRandomDelay" ),
757758 onChanged: (value) {
@@ -766,7 +767,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
766767 mainAxisAlignment: MainAxisAlignment .spaceBetween,
767768 children: [
768769 Text ("Use grouped shocker controlling" ),
769- Switch (
770+ HapticSwitch (
770771 value: widget.manager.settings.useGroupedShockerSelection,
771772 key: ValueKey ("useGroupedShockerSelection" ),
772773 onChanged: (value) {
@@ -781,7 +782,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
781782 mainAxisAlignment: MainAxisAlignment .spaceBetween,
782783 children: [
783784 Text ("Use range slider for random delay" ),
784- Switch (
785+ HapticSwitch (
785786 value: widget.manager.settings.useRangeSliderForRandomDelay,
786787 key: ValueKey ("useRangeSliderForRandomDelay" ),
787788 onChanged: (value) {
@@ -797,7 +798,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
797798 mainAxisAlignment: MainAxisAlignment .spaceBetween,
798799 children: [
799800 Text ("Use range slider for intensity" ),
800- Switch (
801+ HapticSwitch (
801802 value: widget.manager.settings.useRangeSliderForIntensity,
802803 key: ValueKey ("useRangeSliderForIntensity" ),
803804 onChanged: (value) {
@@ -812,7 +813,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
812813 mainAxisAlignment: MainAxisAlignment .spaceBetween,
813814 children: [
814815 Text ("Use range slider for duration" ),
815- Switch (
816+ HapticSwitch (
816817 value: widget.manager.settings.useRangeSliderForDuration,
817818 key: ValueKey ("useRangeSliderForDuration" ),
818819 onChanged: (value) {
@@ -840,7 +841,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
840841 icon: Icon (Icons .info))
841842 ],
842843 ),
843- Switch (
844+ HapticSwitch (
844845 value: widget.manager.settings.confirmShock,
845846 key: ValueKey ("confirmShock" ),
846847 onChanged: (value) {
@@ -855,7 +856,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
855856 mainAxisAlignment: MainAxisAlignment .spaceBetween,
856857 children: [
857858 Text ("Allow choosing tones for controls" ),
858- Switch (
859+ HapticSwitch (
859860 value: widget.manager.settings.allowTonesForControls,
860861 key: ValueKey ("allowTonesForControls" ),
861862 onChanged: (value) {
@@ -870,7 +871,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
870871 mainAxisAlignment: MainAxisAlignment .spaceBetween,
871872 children: [
872873 Text ("Seperate slider for vibrate and shock intensity" ),
873- Switch (
874+ HapticSwitch (
874875 value: widget.manager.settings.useSeperateSliders,
875876 key: ValueKey ("useSeperateSliders" ),
876877 onChanged: (value) {
@@ -895,7 +896,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
895896 icon: Icon (Icons .info))
896897 ],
897898 ),
898- Switch (
899+ HapticSwitch (
899900 value: widget.manager.settings.lerpIntensity,
900901 key: ValueKey ("lerpIntensity" ),
901902 onChanged: (value) {
@@ -910,7 +911,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
910911 mainAxisAlignment: MainAxisAlignment .spaceBetween,
911912 children: [
912913 Text ("Send logs for live control (workaround)" ),
913- Switch (
914+ HapticSwitch (
914915 value: widget.manager.settings.liveControlsLogWorkaround,
915916 key: ValueKey ("liveControlsLogWorkaround" ),
916917 onChanged: (value) {
@@ -935,7 +936,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
935936 icon: Icon (Icons .info))
936937 ],
937938 ),
938- Switch (
939+ HapticSwitch (
939940 value: widget.manager.settings.allowMultiServerLogin,
940941 key: ValueKey ("allowMultiServerLogin" ),
941942 onChanged: (value) {
@@ -960,7 +961,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
960961 icon: Icon (Icons .info))
961962 ],
962963 ),
963- Switch (
964+ HapticSwitch (
964965 value: widget.manager.settings.useAlarmServer,
965966 key: ValueKey ("useAlarmServer" ),
966967 onChanged: (value) {
@@ -988,7 +989,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
988989 icon: Icon (Icons .info))
989990 ],
990991 ),
991- Switch (
992+ HapticSwitch (
992993 value: widget.manager.settings.increaseMaxDuration,
993994 key: ValueKey ("increaseMaxDuration" ),
994995 onChanged: (value) {
@@ -999,11 +1000,26 @@ class _SettingsScreenState extends State<SettingsScreen> {
9991000 })
10001001 ],
10011002 ),
1003+ Row (
1004+ mainAxisAlignment: MainAxisAlignment .spaceBetween,
1005+ children: [
1006+ Text ("Enable ui haptic feedback" ),
1007+ HapticSwitch (
1008+ value: widget.manager.settings.enableUiVibrations,
1009+ key: ValueKey ("enableUiVibrations" ),
1010+ onChanged: (value) {
1011+ setState (() {
1012+ widget.manager.settings.enableUiVibrations = value;
1013+ widget.manager.saveSettings ();
1014+ });
1015+ })
1016+ ],
1017+ ),
10021018 Row (
10031019 mainAxisAlignment: MainAxisAlignment .spaceBetween,
10041020 children: [
10051021 Text ("Show hub firmware version" ),
1006- Switch (
1022+ HapticSwitch (
10071023 value: widget.manager.settings.showFirmwareVersion,
10081024 key: ValueKey ("showFirmwareVersion" ),
10091025 onChanged: (value) {
@@ -1018,7 +1034,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
10181034 mainAxisAlignment: MainAxisAlignment .spaceBetween,
10191035 children: [
10201036 Text ("Disable hub filtering" ),
1021- Switch (
1037+ HapticSwitch (
10221038 value: widget.manager.settings.disableHubFiltering,
10231039 key: ValueKey ("disableHubFiltering" ),
10241040 onChanged: (value) {
@@ -1033,7 +1049,7 @@ class _SettingsScreenState extends State<SettingsScreen> {
10331049 mainAxisAlignment: MainAxisAlignment .spaceBetween,
10341050 children: [
10351051 Text ("Use http instead of ws for shocking" ),
1036- Switch (
1052+ HapticSwitch (
10371053 value: widget.manager.settings.useHttpShocking,
10381054 key: ValueKey ("useHttpShocking" ),
10391055 onChanged: (value) {
0 commit comments