spotube/lib/hooks/configurators/use_close_behavior.dart
google-labs-jules[bot] e7523c70d0 feat: Add DAB Music support, performance improvements, and UI enhancements
- Add DAB Music as a new high-resolution audio source, including API integration, streaming, and download functionality.
- Display the current audio playback quality in the UI.
- Improve the performance of the desktop application, specifically its slow startup and shutdown times.
2025-11-12 23:41:35 +00:00

40 lines
1.2 KiB
Dart

import 'dart:io';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:spotube/hooks/configurators/use_window_listener.dart';
import 'package:spotube/models/database/database.dart';
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
import 'package:local_notifier/local_notifier.dart';
import 'package:spotube/services/audio_player/audio_player.dart';
import 'package:spotube/utils/platform.dart';
import 'package:window_manager/window_manager.dart';
final closeNotification = !kIsDesktop
? null
: (LocalNotification(
title: 'Spotube',
body: 'Running in background. Minimized to System Tray',
actions: [
LocalNotificationAction(text: 'Close The App'),
],
)..onClickAction = (value) {
exit(0);
});
void useCloseBehavior(WidgetRef ref) {
useWindowListener(
onWindowClose: () async {
final preferences = ref.read(userPreferencesProvider);
if (preferences.closeBehavior == CloseBehavior.minimizeToTray) {
await windowManager.hide();
closeNotification?.show();
} else {
await audioPlayer.dispose();
await windowManager.destroy();
exit(0);
}
},
);
}