waveform method
Future<VibrationResult>
waveform({
- required List<
Duration> pattern, - List<
int> ? amplitudes, - required int repeat,
- required VibrationUsage usage,
override
Triggers a pattern/waveform vibration with optional amplitudes and repeat.
Implementation
@override
Future<VibrationResult> waveform({
required List<Duration> pattern,
List<int>? amplitudes,
required int repeat,
required VibrationUsage usage,
}) async {
try {
final patternMs = pattern.map((e) => e.inMilliseconds).toList();
final res = await methodChannel
.invokeMapMethod<String, dynamic>('waveform', <String, dynamic>{
'pattern': patternMs,
'amplitudes': amplitudes,
'repeat': repeat,
'usage': usage.name,
});
if (res != null) {
return VibrationResult.fromMap(res);
}
} on PlatformException catch (e) {
return VibrationResult(
status: VibrationStatus.platformError,
message: e.message ?? e.details?.toString(),
);
} catch (e) {
return VibrationResult(
status: VibrationStatus.platformError,
message: e.toString(),
);
}
return const VibrationResult(
status: VibrationStatus.platformError,
message: 'Empty response from platform',
);
}