2026-07-30 12:39:24 -07:00
|
|
|
import 'dart:async';
|
|
|
|
|
|
2024-04-15 07:50:47 +02:00
|
|
|
import 'package:flutter/services.dart';
|
|
|
|
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
2024-05-02 15:59:14 -05:00
|
|
|
import 'package:immich_mobile/providers/app_settings.provider.dart';
|
|
|
|
|
import 'package:immich_mobile/services/app_settings.service.dart';
|
2024-04-15 07:50:47 +02:00
|
|
|
|
2025-07-25 08:07:22 +05:30
|
|
|
final hapticFeedbackProvider = StateNotifierProvider<HapticNotifier, void>((ref) {
|
2024-04-15 07:50:47 +02:00
|
|
|
return HapticNotifier(ref);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
class HapticNotifier extends StateNotifier<void> {
|
|
|
|
|
void build() {}
|
|
|
|
|
final Ref _ref;
|
|
|
|
|
|
|
|
|
|
HapticNotifier(this._ref) : super(null);
|
|
|
|
|
|
2026-07-30 01:56:46 -07:00
|
|
|
void selectionClick() {
|
2025-07-25 08:07:22 +05:30
|
|
|
if (_ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.enableHapticFeedback)) {
|
2026-07-30 12:39:24 -07:00
|
|
|
unawaited(HapticFeedback.selectionClick());
|
2024-04-15 07:50:47 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-30 01:56:46 -07:00
|
|
|
void lightImpact() {
|
2025-07-25 08:07:22 +05:30
|
|
|
if (_ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.enableHapticFeedback)) {
|
2026-07-30 12:39:24 -07:00
|
|
|
unawaited(HapticFeedback.lightImpact());
|
2024-04-15 07:50:47 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-30 01:56:46 -07:00
|
|
|
void mediumImpact() {
|
2025-07-25 08:07:22 +05:30
|
|
|
if (_ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.enableHapticFeedback)) {
|
2026-07-30 12:39:24 -07:00
|
|
|
unawaited(HapticFeedback.mediumImpact());
|
2024-04-15 07:50:47 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-30 01:56:46 -07:00
|
|
|
void heavyImpact() {
|
2025-07-25 08:07:22 +05:30
|
|
|
if (_ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.enableHapticFeedback)) {
|
2026-07-30 12:39:24 -07:00
|
|
|
unawaited(HapticFeedback.heavyImpact());
|
2024-04-15 07:50:47 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-30 01:56:46 -07:00
|
|
|
void vibrate() {
|
2025-07-25 08:07:22 +05:30
|
|
|
if (_ref.read(appSettingsServiceProvider).getSetting(AppSettingsEnum.enableHapticFeedback)) {
|
2026-07-30 12:39:24 -07:00
|
|
|
unawaited(HapticFeedback.vibrate());
|
2024-04-15 07:50:47 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|