diff --git a/lib/main.dart b/lib/main.dart index b3a3132f..e0e34254 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'package:dart_discord_rpc/dart_discord_rpc.dart'; +import 'package:desktop_webview_window/desktop_webview_window.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -65,7 +66,7 @@ Future main(List rawArgs) async { await FlutterDisplayMode.setHighRefreshRate(); } - if (kIsDesktop && !kIsMacOS) { + if (kIsDesktop) { await windowManager.setPreventClose(true); } diff --git a/lib/models/database/database.dart b/lib/models/database/database.dart index 1c233f84..fbfc59db 100644 --- a/lib/models/database/database.dart +++ b/lib/models/database/database.dart @@ -66,7 +66,7 @@ LazyDatabase _openConnection() { return LazyDatabase(() async { // put the database file, called db.sqlite here, into the documents folder // for your app. - final dbFolder = await getApplicationDocumentsDirectory(); + final dbFolder = await getApplicationSupportDirectory(); final file = File(join(dbFolder.path, 'db.sqlite')); // Also work around limitations on old Android versions diff --git a/lib/pages/settings/sections/accounts.dart b/lib/pages/settings/sections/accounts.dart index 1ec488c9..0c2f3c5e 100644 --- a/lib/pages/settings/sections/accounts.dart +++ b/lib/pages/settings/sections/accounts.dart @@ -1,8 +1,12 @@ +import 'dart:io'; + import 'package:auto_size_text/auto_size_text.dart'; import 'package:desktop_webview_window/desktop_webview_window.dart'; import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; +import 'package:path/path.dart'; +import 'package:path_provider/path_provider.dart'; import 'package:spotube/collections/spotube_icons.dart'; import 'package:spotube/modules/settings/section_card_with_heading.dart'; import 'package:spotube/components/image/universal_image.dart'; @@ -42,7 +46,18 @@ class SettingsAccountSection extends HookConsumerWidget { return; } - final webview = await WebviewWindow.create(); + final applicationSupportDir = await getApplicationSupportDirectory(); + final userDataFolder = Directory( + join(applicationSupportDir.path, "webview_window_Webview2")); + + if (!await userDataFolder.exists()) { + await userDataFolder.create(); + } + + final webview = await WebviewWindow.create( + configuration: + CreateConfiguration(userDataFolderWindows: userDataFolder.path), + ); webview.setOnUrlRequestCallback((url) { final exp = RegExp(r"https:\/\/accounts.spotify.com\/.+\/status");