chore: fix windows webview2 trying to store data in admin folders

This commit is contained in:
Kingkor Roy Tirtho 2024-07-05 13:32:07 +06:00
parent 79b842dad3
commit f2f35bd2fb
3 changed files with 19 additions and 3 deletions

View File

@ -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<void> main(List<String> rawArgs) async {
await FlutterDisplayMode.setHighRefreshRate();
}
if (kIsDesktop && !kIsMacOS) {
if (kIsDesktop) {
await windowManager.setPreventClose(true);
}

View File

@ -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

View File

@ -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");