fix: spotube doesn't exit properly, hangs in infinite loop #768

This commit is contained in:
Kingkor Roy Tirtho 2023-10-29 20:59:56 +06:00
parent 83c0b49da9
commit 353ca79be3
5 changed files with 12 additions and 10 deletions

View File

@ -1,6 +1,7 @@
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/services.dart';
import 'package:flutter_desktop_tools/flutter_desktop_tools.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:go_router/go_router.dart';
import 'package:spotube/components/player/player_controls.dart';
@ -115,7 +116,7 @@ class CloseAppAction extends Action<CloseAppIntent> {
@override
invoke(intent) {
if (kIsDesktop) {
DesktopTools.window.close();
exit(0);
} else {
SystemNavigator.pop();
}

View File

@ -6,7 +6,7 @@ import 'package:spotube/utils/platform.dart';
import 'package:titlebar_buttons/titlebar_buttons.dart';
import 'dart:math';
import 'package:flutter/foundation.dart' show kIsWeb;
import 'dart:io' show Platform;
import 'dart:io' show Platform, exit;
import 'package:flutter_desktop_tools/flutter_desktop_tools.dart';
import 'package:local_notifier/local_notifier.dart';
@ -17,7 +17,7 @@ final closeNotification = DesktopTools.createNotification(
LocalNotificationAction(text: 'Close The App'),
],
)?..onClickAction = (value) {
DesktopTools.window.close();
exit(0);
};
class PageWindowTitleBar extends StatefulHookConsumerWidget
@ -113,7 +113,7 @@ class WindowTitleBarButtons extends HookConsumerWidget {
Future<void> onClose() async {
if (preferences.closeBehavior == CloseBehavior.close) {
await DesktopTools.window.close();
exit(0);
} else {
await DesktopTools.window.hide();
await closeNotification?.show();

View File

@ -1,3 +1,5 @@
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_desktop_tools/flutter_desktop_tools.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
@ -70,7 +72,7 @@ void useInitSysTray(WidgetRef ref) {
label: "Quit",
name: "quit",
onClicked: (item) async {
await DesktopTools.window.close();
exit(0);
},
),
],

View File

@ -263,8 +263,8 @@
"use_system_title_bar": "Use system title bar",
"crunching_results": "Crunching results...",
"search_to_get_results": "Search to get results",
"use_amoled_mode": "Use AMOLED mode",
"pitch_dark_theme": "Pitch black dart theme",
"use_amoled_mode": "Pitch black dark theme",
"pitch_dark_theme": "AMOLED Mode",
"normalize_audio": "Normalize audio",
"change_cover": "Change cover",
"add_cover": "Add cover",

View File

@ -86,8 +86,7 @@ class _MprisMediaPlayer2 extends DBusObject {
/// Implementation of org.mpris.MediaPlayer2.Quit()
Future<DBusMethodResponse> doQuit() async {
await windowManager.close();
return DBusMethodSuccessResponse();
exit(0);
}
@override