diff --git a/lib/globals.dart b/lib/globals.dart index 9c945dc..6c36398 100644 --- a/lib/globals.dart +++ b/lib/globals.dart @@ -1,4 +1,3 @@ -import 'dart:io'; import 'package:cookie_jar/cookie_jar.dart'; import 'package:dio/dio.dart'; import 'package:dio_cookie_manager/dio_cookie_manager.dart'; @@ -11,8 +10,6 @@ import 'package:flutter/services.dart' import 'package:flutter_gen/gen_l10n/app_localizations.dart'; import 'package:go_router/go_router.dart'; import 'package:logging/logging.dart'; -import 'package:path/path.dart' as path; -import 'package:path_provider/path_provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:window_manager/window_manager.dart'; import 'api/client.dart'; @@ -24,6 +21,7 @@ import 'gallery.dart'; import 'main.dart'; import 'platform/clipboard.dart'; import 'platform/display.dart'; +import 'platform/get_jar.dart'; import 'platform/path.dart'; import 'platform/set_title.dart'; import 'tags.dart'; @@ -39,24 +37,8 @@ final dio = Dio() Config? _prefs; EHApi? _api; -Future _getJarPath() async { - if (isWindows || isLinux) { - try { - final p = await platformPath.getCurrentExe(); - if (p != null) { - return path.join(path.dirname(p), "cookies"); - } - } catch (e) { - // Do nothing - } - } - final Directory appDocDir = await getApplicationDocumentsDirectory(); - final String appDocPath = appDocDir.path; - return '$appDocPath/.eh-cookies/'; -} - Future prepareJar() async { - final jar = PersistCookieJar(storage: FileStorage(await _getJarPath())); + final jar = PersistCookieJar(storage: FileStorage(await getJarPath())); dio.interceptors.add(CookieManager(jar)); } diff --git a/lib/main.dart b/lib/main.dart index 68736a2..67f25a0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -246,7 +246,7 @@ class _MainApp extends State { } catch (e) { _log.warning("Failed to read lang from prefs:", e); } - if (kIsWeb || isWindows) { + if (isWindows) { _themeData = _themeData.useSystemChineseFont(); _darkThemeData = _darkThemeData.useSystemChineseFont(); } diff --git a/lib/platform/fake_io.dart b/lib/platform/fake_io.dart new file mode 100644 index 0000000..13f665c --- /dev/null +++ b/lib/platform/fake_io.dart @@ -0,0 +1,7 @@ +final class Platform { + static bool get isWindows => false; + static bool get isLinux => false; + static bool get isMacOS => false; + static bool get isAndroid => false; + static bool get isIOS => false; +} diff --git a/lib/platform/get_jar.dart b/lib/platform/get_jar.dart new file mode 100644 index 0000000..ad6f727 --- /dev/null +++ b/lib/platform/get_jar.dart @@ -0,0 +1 @@ +export 'get_jar_other.dart' if (dart.library.html) 'get_jar_none.dart'; diff --git a/lib/platform/get_jar_none.dart b/lib/platform/get_jar_none.dart new file mode 100644 index 0000000..7abaaec --- /dev/null +++ b/lib/platform/get_jar_none.dart @@ -0,0 +1,3 @@ +Future getJarPath() { + throw UnimplementedError(); +} diff --git a/lib/platform/get_jar_other.dart b/lib/platform/get_jar_other.dart new file mode 100644 index 0000000..bc92a93 --- /dev/null +++ b/lib/platform/get_jar_other.dart @@ -0,0 +1,21 @@ +import 'dart:io'; +import '../utils.dart'; +import '../globals.dart'; +import 'package:path/path.dart' as path; +import 'package:path_provider/path_provider.dart'; + +Future getJarPath() async { + if (isWindows || isLinux) { + try { + final p = await platformPath.getCurrentExe(); + if (p != null) { + return path.join(path.dirname(p), "cookies"); + } + } catch (e) { + // Do nothing + } + } + final Directory appDocDir = await getApplicationDocumentsDirectory(); + final String appDocPath = appDocDir.path; + return '$appDocPath/.eh-cookies/'; +} diff --git a/lib/utils.dart b/lib/utils.dart index 1a67ae9..5e3cb2e 100644 --- a/lib/utils.dart +++ b/lib/utils.dart @@ -1,4 +1,4 @@ -import 'dart:io' show Platform; +import 'dart:io' show Platform if (dart.library.html) './platform/fake_io.dart'; import 'package:flutter/foundation.dart'; bool get isDesktop =>