relatica/lib/riverpod_controllers/focus_mode.dart

33 wiersze
766 B
Dart
Czysty Zwykły widok Historia

2024-07-24 15:40:25 +00:00
import 'dart:async';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import '../models/focus_mode_data.dart';
2024-07-24 15:40:25 +00:00
part 'focus_mode.g.dart';
2024-07-24 15:40:25 +00:00
@Riverpod(keepAlive: true)
2024-07-24 15:40:25 +00:00
class FocusMode extends _$FocusMode {
Timer? _disableTimer;
void setMode(FocusModeData newMode) {
_disableTimer?.cancel();
if (newMode.enabled && newMode.disableTime != null) {
_disableTimer =
Timer(newMode.disableTime!.difference(DateTime.now()), () {
print('disabling mode');
state = const FocusModeData(false);
});
}
print('New focus mode: $newMode');
state = newMode;
}
@override
FocusModeData build() {
print('Building FocusMode provider');
2024-07-24 15:40:25 +00:00
state = const FocusModeData(false);
return state;
}
}