Skip to content

Commit a3efdf5

Browse files
committed
More vibrations
1 parent b96eb86 commit a3efdf5

4 files changed

Lines changed: 43 additions & 20 deletions

File tree

lib/components/shock_disclamer.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,17 @@
11
import 'package:flutter/material.dart';
2+
import 'package:shock_alarm_app/services/vibrations.dart';
23
import 'package:url_launcher/url_launcher.dart';
34

45
import '../main.dart';
56

67
class ShockDisclaimer extends StatelessWidget {
8+
9+
@override
10+
StatelessElement createElement() {
11+
ShockAlarmVibrations.important();
12+
return super.createElement();
13+
}
14+
715
@override
816
Widget build(BuildContext context) {
917
// TODO: implement build

lib/screens/shockers/grouped/grouped_shockers.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ class _GroupedShockerScreenState extends State<GroupedShockerScreen> {
107107
loadingResume = true;
108108
}
109109
});
110+
ShockAlarmVibrations.pause(pause);
110111

111112
int shockerCount = 0;
112113
int completedShockers = 0;

lib/screens/shockers/shocker_item.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import 'package:shock_alarm_app/services/alarm_manager.dart';
1616
import 'package:shock_alarm_app/services/formatter.dart';
1717
import 'package:shock_alarm_app/services/limits.dart';
1818
import 'package:shock_alarm_app/services/openshockws.dart';
19+
import 'package:shock_alarm_app/services/vibrations.dart';
1920
import '../logs/logs.dart';
2021
import '../shares/shares.dart';
2122
import '../../stores/alarm_store.dart';
@@ -229,6 +230,7 @@ class ShockerItemState extends State<ShockerItem>
229230
}
230231

231232
void setPauseState(bool pause) async {
233+
ShockAlarmVibrations.pause(pause);
232234
setState(() {
233235
loadingPause = true;
234236
});
@@ -831,6 +833,8 @@ class ShockingControlsState extends State<ShockingControls>
831833
});
832834
});
833835
delayVibrationController!.forward();
836+
setState(() {
837+
});
834838
}
835839

836840
void onToneSelected(int? id) {

lib/services/vibrations.dart

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,37 @@ import 'package:shock_alarm_app/services/openshock.dart';
22
import 'package:vibration/vibration.dart';
33

44
class ShockAlarmVibrations {
5-
static void vibrateLongTap() {
6-
Vibration.hasVibrator().then((res) {
7-
if(!res) return;
8-
Vibration.vibrate(duration: 50, amplitude: 128);
9-
});
5+
6+
static Future<bool> skipVibration() async {
7+
return !await Vibration.hasVibrator();
8+
}
9+
static void vibrateLongTap() async {
10+
if(await skipVibration()) return;
11+
Vibration.vibrate(duration: 50, amplitude: 128);
12+
}
13+
14+
static void onAction(ControlType type) async {
15+
if(await skipVibration()) return;
16+
switch(type) {
17+
case ControlType.shock:
18+
Vibration.vibrate(pattern: [0, 100, 50, 100], amplitude: 128);
19+
break;
20+
case ControlType.stop:
21+
Vibration.vibrate(pattern: [0, 50, 50, 50, 50, 50], amplitude: 128);
22+
break;
23+
default:
24+
Vibration.vibrate(duration: 100, amplitude: 128);
25+
break;
26+
}
27+
}
28+
29+
static void important() async {
30+
if(await skipVibration()) return;
31+
Vibration.vibrate(pattern: [0, 100, 50, 100], amplitude: 128);
1032
}
1133

12-
static void onAction(ControlType type) {
13-
Vibration.hasVibrator().then((res) {
14-
if(!res) return;
15-
switch(type) {
16-
case ControlType.shock:
17-
Vibration.vibrate(pattern: [0, 100, 50, 100], amplitude: 128);
18-
break;
19-
case ControlType.stop:
20-
Vibration.vibrate(pattern: [0, 50, 50, 50, 50, 50], amplitude: 128);
21-
break;
22-
default:
23-
Vibration.vibrate(duration: 100, amplitude: 128);
24-
break;
25-
}
26-
});
34+
static void pause(bool paused) async {
35+
if(await skipVibration()) return;
36+
Vibration.vibrate(pattern: paused ? [0, 100] : [0, 50, 100, 50], amplitude: 128);
2737
}
2838
}

0 commit comments

Comments
 (0)