chore: Update flutter to 3.27 and updated packages

This commit is contained in:
PartyDonut 2025-01-04 23:12:32 +01:00
parent e607a6d19b
commit a817d40463
24 changed files with 3848 additions and 5051 deletions

2
.fvmrc
View file

@ -1,3 +1,3 @@
{ {
"flutter": "3.24.3" "flutter": "3.27.0"
} }

34
.vscode/settings.json vendored
View file

@ -1,19 +1,19 @@
{ {
"cSpell.words": [ "cSpell.words": [
"ficonsax", "ficonsax",
"jellyfin", "jellyfin",
"Jellyfin", "Jellyfin",
"LTRB", "LTRB",
"LTWH", "LTWH",
"outro" "outro"
], ],
"dart.flutterSdkPath": ".fvm/versions/3.24.3", "dart.flutterSdkPath": ".fvm/versions/3.27.0",
"search.exclude": { "search.exclude": {
"**/.fvm": true "**/.fvm": true
}, },
"files.watcherExclude": { "files.watcherExclude": {
"**/.fvm": true "**/.fvm": true
}, },
"editor.detectIndentation": true, "editor.detectIndentation": true,
"dart.lineLength": 120 "dart.lineLength": 120
} }

View file

@ -1,6 +1,7 @@
// ignore_for_file: type=lint // ignore_for_file: type=lint
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
import 'package:json_annotation/json_annotation.dart' as json;
import 'package:collection/collection.dart'; import 'package:collection/collection.dart';
import 'dart:convert'; import 'dart:convert';
@ -30,7 +31,7 @@ abstract class JellyfinOpenApi extends ChopperService {
ErrorConverter? errorConverter, ErrorConverter? errorConverter,
Converter? converter, Converter? converter,
Uri? baseUrl, Uri? baseUrl,
Iterable<dynamic>? interceptors, List<Interceptor>? interceptors,
}) { }) {
if (client != null) { if (client != null) {
return _$JellyfinOpenApi(client); return _$JellyfinOpenApi(client);

File diff suppressed because it is too large Load diff

View file

@ -1,12 +1,13 @@
import 'dart:developer'; import 'dart:developer';
import 'package:chopper/chopper.dart'; import 'package:chopper/chopper.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:fladder/jellyfin/jellyfin_open_api.swagger.dart'; import 'package:fladder/jellyfin/jellyfin_open_api.swagger.dart';
import 'package:fladder/providers/auth_provider.dart'; import 'package:fladder/providers/auth_provider.dart';
import 'package:fladder/providers/service_provider.dart'; import 'package:fladder/providers/service_provider.dart';
import 'package:fladder/providers/user_provider.dart'; import 'package:fladder/providers/user_provider.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'api_provider.g.dart'; part 'api_provider.g.dart';
@ -26,37 +27,40 @@ class JellyApi extends _$JellyApi {
} }
} }
class JellyRequest implements RequestInterceptor { class JellyRequest implements Interceptor {
JellyRequest(this.ref); JellyRequest(this.ref);
final Ref ref; final Ref ref;
@override @override
FutureOr<Request> onRequest(Request request) async { FutureOr<Response<BodyType>> intercept<BodyType>(Chain<BodyType> chain) async {
if (request.method == HttpMethod.Post) {
chopperLogger.info('Performed a POST request');
}
final serverUrl = Uri.parse(ref.read(userProvider)?.server ?? ref.read(authProvider).tempCredentials.server); final serverUrl = Uri.parse(ref.read(userProvider)?.server ?? ref.read(authProvider).tempCredentials.server);
//Use current logged in user otherwise use the authprovider //Use current logged in user otherwise use the authprovider
var loginModel = ref.read(userProvider)?.credentials ?? ref.read(authProvider).tempCredentials; var loginModel = ref.read(userProvider)?.credentials ?? ref.read(authProvider).tempCredentials;
var headers = loginModel.header(ref); var headers = loginModel.header(ref);
return request.copyWith( final Response<BodyType> response = await chain.proceed(
baseUri: serverUrl, applyHeaders(
headers: request.headers..addAll(headers), chain.request.copyWith(
baseUri: serverUrl,
),
headers),
); );
return response;
} }
} }
class JellyResponse implements ResponseInterceptor { class JellyResponse implements Interceptor {
JellyResponse(this.ref); JellyResponse(this.ref);
final Ref ref; final Ref ref;
@override @override
FutureOr<Response<dynamic>> onResponse(Response<dynamic> response) { FutureOr<Response<BodyType>> intercept<BodyType>(Chain<BodyType> chain) async {
final Response<BodyType> response = await chain.proceed(chain.request);
if (!response.isSuccessful) { if (!response.isSuccessful) {
log('x- ${response.base.statusCode} - ${response.base.reasonPhrase} - ${response.error} - ${response.base.request?.method} ${response.base.request?.url.toString()}'); log('x- ${response.base.statusCode} - ${response.base.reasonPhrase} - ${response.error} - ${response.base.request?.method} ${response.base.request?.url.toString()}');
} }

View file

@ -22,4 +22,4 @@ final jellyApiProvider =
typedef _$JellyApi = AutoDisposeNotifier<JellyService>; typedef _$JellyApi = AutoDisposeNotifier<JellyService>;
// ignore_for_file: type=lint // ignore_for_file: type=lint
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

View file

@ -1,17 +1,18 @@
import 'dart:developer'; import 'dart:developer';
import 'dart:io'; import 'dart:io';
import 'package:flutter/widgets.dart';
import 'package:archive/archive_io.dart'; import 'package:archive/archive_io.dart';
import 'package:chopper/chopper.dart'; import 'package:chopper/chopper.dart';
import 'package:fladder/providers/service_provider.dart';
import 'package:fladder/providers/user_provider.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:path_provider/path_provider.dart';
import 'package:fladder/jellyfin/jellyfin_open_api.swagger.dart'; import 'package:fladder/jellyfin/jellyfin_open_api.swagger.dart';
import 'package:fladder/models/book_model.dart'; import 'package:fladder/models/book_model.dart';
import 'package:fladder/providers/api_provider.dart'; import 'package:fladder/providers/api_provider.dart';
import 'package:path_provider/path_provider.dart'; import 'package:fladder/providers/service_provider.dart';
import 'package:fladder/providers/user_provider.dart';
class BookViewerModel { class BookViewerModel {
final BookModel? book; final BookModel? book;
@ -75,7 +76,7 @@ class BookViewerNotifier extends StateNotifier<BookViewerModel> {
await bookFile.writeAsBytes(response.bodyBytes); await bookFile.writeAsBytes(response.bodyBytes);
final inputStream = InputFileStream(bookFile.path); final inputStream = InputFileStream(bookFile.path);
final archive = ZipDecoder().decodeBuffer(inputStream); final archive = ZipDecoder().decodeStream(inputStream);
final List<String> imagesPath = []; final List<String> imagesPath = [];
for (var file in archive.files) { for (var file in archive.files) {

View file

@ -23,4 +23,4 @@ final serverDiscoveryProvider = AutoDisposeStreamNotifierProvider<
typedef _$ServerDiscovery = AutoDisposeStreamNotifier<List<DiscoveryInfo>>; typedef _$ServerDiscovery = AutoDisposeStreamNotifier<List<DiscoveryInfo>>;
// ignore_for_file: type=lint // ignore_for_file: type=lint
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

View file

@ -157,6 +157,8 @@ class MovieDetailsProvider
} }
} }
@Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element
mixin MovieDetailsRef on AutoDisposeNotifierProviderRef<MovieModel?> { mixin MovieDetailsRef on AutoDisposeNotifierProviderRef<MovieModel?> {
/// The parameter `arg` of this provider. /// The parameter `arg` of this provider.
String get arg; String get arg;
@ -171,4 +173,4 @@ class _MovieDetailsProviderElement
String get arg => (origin as MovieDetailsProvider).arg; String get arg => (origin as MovieDetailsProvider).arg;
} }
// ignore_for_file: type=lint // ignore_for_file: type=lint
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

View file

@ -157,6 +157,8 @@ class LibraryFiltersProvider extends AutoDisposeNotifierProviderImpl<
} }
} }
@Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element
mixin LibraryFiltersRef mixin LibraryFiltersRef
on AutoDisposeNotifierProviderRef<List<LibraryFiltersModel>> { on AutoDisposeNotifierProviderRef<List<LibraryFiltersModel>> {
/// The parameter `ids` of this provider. /// The parameter `ids` of this provider.
@ -171,4 +173,4 @@ class _LibraryFiltersProviderElement extends AutoDisposeNotifierProviderElement<
List<String> get ids => (origin as LibraryFiltersProvider).ids; List<String> get ids => (origin as LibraryFiltersProvider).ids;
} }
// ignore_for_file: type=lint // ignore_for_file: type=lint
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

View file

@ -43,4 +43,4 @@ final sessionInfoProvider =
typedef _$SessionInfo = AutoDisposeNotifier<SessionInfoModel>; typedef _$SessionInfo = AutoDisposeNotifier<SessionInfoModel>;
// ignore_for_file: type=lint // ignore_for_file: type=lint
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

View file

@ -21,6 +21,8 @@ final backgroundDownloaderProvider = Provider<FileDownloader>.internal(
allTransitiveDependencies: null, allTransitiveDependencies: null,
); );
@Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element
typedef BackgroundDownloaderRef = ProviderRef<FileDownloader>; typedef BackgroundDownloaderRef = ProviderRef<FileDownloader>;
// ignore_for_file: type=lint // ignore_for_file: type=lint
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

View file

@ -157,6 +157,8 @@ class SyncChildrenProvider
} }
} }
@Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element
mixin SyncChildrenRef on AutoDisposeNotifierProviderRef<List<SyncedItem>> { mixin SyncChildrenRef on AutoDisposeNotifierProviderRef<List<SyncedItem>> {
/// The parameter `arg` of this provider. /// The parameter `arg` of this provider.
SyncedItem get arg; SyncedItem get arg;
@ -302,6 +304,8 @@ class SyncDownloadStatusProvider extends AutoDisposeNotifierProviderImpl<
} }
} }
@Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element
mixin SyncDownloadStatusRef on AutoDisposeNotifierProviderRef<DownloadStream?> { mixin SyncDownloadStatusRef on AutoDisposeNotifierProviderRef<DownloadStream?> {
/// The parameter `arg` of this provider. /// The parameter `arg` of this provider.
SyncedItem get arg; SyncedItem get arg;
@ -446,6 +450,8 @@ class SyncStatusesProvider
} }
} }
@Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element
mixin SyncStatusesRef on AutoDisposeAsyncNotifierProviderRef<SyncStatus> { mixin SyncStatusesRef on AutoDisposeAsyncNotifierProviderRef<SyncStatus> {
/// The parameter `arg` of this provider. /// The parameter `arg` of this provider.
SyncedItem get arg; SyncedItem get arg;
@ -586,6 +592,8 @@ class SyncSizeProvider extends AutoDisposeNotifierProviderImpl<SyncSize, int?> {
} }
} }
@Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element
mixin SyncSizeRef on AutoDisposeNotifierProviderRef<int?> { mixin SyncSizeRef on AutoDisposeNotifierProviderRef<int?> {
/// The parameter `arg` of this provider. /// The parameter `arg` of this provider.
SyncedItem get arg; SyncedItem get arg;
@ -600,4 +608,4 @@ class _SyncSizeProviderElement
SyncedItem get arg => (origin as SyncSizeProvider).arg; SyncedItem get arg => (origin as SyncSizeProvider).arg;
} }
// ignore_for_file: type=lint // ignore_for_file: type=lint
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

View file

@ -21,6 +21,8 @@ final showSyncButtonProviderProvider = AutoDisposeProvider<bool>.internal(
allTransitiveDependencies: null, allTransitiveDependencies: null,
); );
@Deprecated('Will be removed in 3.0. Use Ref instead')
// ignore: unused_element
typedef ShowSyncButtonProviderRef = AutoDisposeProviderRef<bool>; typedef ShowSyncButtonProviderRef = AutoDisposeProviderRef<bool>;
String _$userHash() => r'e83369c0d569d5a862aa1b92f3f0a45a9d1fe446'; String _$userHash() => r'e83369c0d569d5a862aa1b92f3f0a45a9d1fe446';
@ -37,4 +39,4 @@ final userProvider = NotifierProvider<User, AccountModel?>.internal(
typedef _$User = Notifier<AccountModel?>; typedef _$User = Notifier<AccountModel?>;
// ignore_for_file: type=lint // ignore_for_file: type=lint
// ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member // ignore_for_file: subtype_of_sealed_class, invalid_use_of_internal_member, invalid_use_of_visible_for_testing_member, deprecated_member_use_from_same_package

View file

@ -1,11 +1,13 @@
import 'dart:io'; import 'dart:io';
import 'dart:math' as math; import 'dart:math' as math;
import 'package:flutter/material.dart';
import 'package:extended_image/extended_image.dart'; import 'package:extended_image/extended_image.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:fladder/providers/settings/book_viewer_settings_provider.dart'; import 'package:fladder/providers/settings/book_viewer_settings_provider.dart';
import 'package:fladder/screens/book_viewer/book_viewer_controls.dart'; import 'package:fladder/screens/book_viewer/book_viewer_controls.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class BookViewerReader extends ConsumerWidget { class BookViewerReader extends ConsumerWidget {
final int index; final int index;
@ -112,7 +114,6 @@ class BookViewerReader extends ConsumerWidget {
); );
}, },
File(pages[index - 1]), File(pages[index - 1]),
enableMemoryCache: true,
), ),
); );
} }

View file

@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_custom_tabs/flutter_custom_tabs.dart' as customtab; import 'package:flutter_custom_tabs/flutter_custom_tabs.dart' as customtab;
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:url_launcher/url_launcher.dart' as urllauncher; import 'package:url_launcher/url_launcher.dart' as urilauncher;
import 'package:url_launcher/url_launcher_string.dart'; import 'package:url_launcher/url_launcher_string.dart';
import 'package:fladder/models/items/item_shared_models.dart'; import 'package:fladder/models/items/item_shared_models.dart';
@ -49,26 +49,22 @@ Future<void> launchUrl(BuildContext context, String link) async {
final Uri url = Uri.parse(link); final Uri url = Uri.parse(link);
if (AdaptiveLayout.of(context).isDesktop) { if (AdaptiveLayout.of(context).isDesktop) {
if (!await urllauncher.launchUrl(url, mode: LaunchMode.externalApplication)) { if (!await urilauncher.launchUrl(url, mode: LaunchMode.externalApplication)) {
throw Exception('Could not launch $url'); throw Exception('Could not launch $url');
} }
} else { } else {
try { try {
await customtab.launch( await customtab.launchUrl(
link, Uri.parse(link),
customTabsOption: customtab.CustomTabsOption( customTabsOptions: customtab.CustomTabsOptions(
toolbarColor: Theme.of(context).primaryColor, colorSchemes: customtab.CustomTabsColorSchemes.defaults(
enableDefaultShare: true, toolbarColor: Theme.of(context).primaryColor,
enableUrlBarHiding: true, ),
showPageTitle: true, urlBarHidingEnabled: true,
extraCustomTabs: const <String>[ shareState: customtab.CustomTabsShareState.browserDefault,
// ref. https://play.google.com/store/apps/details?id=org.mozilla.firefox showTitle: true,
'org.mozilla.firefox',
// ref. https://play.google.com/store/apps/details?id=com.microsoft.emmx
'com.microsoft.emmx',
],
), ),
safariVCOption: customtab.SafariViewControllerOption( safariVCOptions: customtab.SafariViewControllerOptions(
preferredBarTintColor: Theme.of(context).primaryColor, preferredBarTintColor: Theme.of(context).primaryColor,
preferredControlTintColor: Colors.white, preferredControlTintColor: Colors.white,
barCollapsingEnabled: true, barCollapsingEnabled: true,

View file

@ -149,7 +149,7 @@ class MediaControlsWrapper extends BaseAudioHandler {
playbackState.add(playbackState.value.copyWith( playbackState.add(playbackState.value.copyWith(
playing: value.playing, playing: value.playing,
)); ));
smtc?.setPlaybackStatus(value.playing ? PlaybackStatus.Playing : PlaybackStatus.Paused); smtc?.setPlaybackStatus(value.playing ? PlaybackStatus.playing : PlaybackStatus.paused);
})); }));
} }
@ -212,7 +212,7 @@ class MediaControlsWrapper extends BaseAudioHandler {
); );
smtc?.enableSmtc(); smtc?.enableSmtc();
smtc?.setPlaybackStatus(PlaybackStatus.Playing); smtc?.setPlaybackStatus(PlaybackStatus.playing);
} }
@override @override
@ -225,7 +225,7 @@ class MediaControlsWrapper extends BaseAudioHandler {
ref.read(playBackModel)?.playbackStopped(position ?? Duration.zero, totalDuration, ref); ref.read(playBackModel)?.playbackStopped(position ?? Duration.zero, totalDuration, ref);
ref.read(mediaPlaybackProvider.notifier).update((state) => state.copyWith(position: Duration.zero)); ref.read(mediaPlaybackProvider.notifier).update((state) => state.copyWith(position: Duration.zero));
smtc?.setPlaybackStatus(PlaybackStatus.Stopped); smtc?.setPlaybackStatus(PlaybackStatus.stopped);
smtc?.clearMetadata(); smtc?.clearMetadata();
smtc?.disableSmtc(); smtc?.disableSmtc();
playbackState.add( playbackState.add(

View file

@ -12,7 +12,7 @@
#include <isar_flutter_libs/isar_flutter_libs_plugin.h> #include <isar_flutter_libs/isar_flutter_libs_plugin.h>
#include <media_kit_libs_linux/media_kit_libs_linux_plugin.h> #include <media_kit_libs_linux/media_kit_libs_linux_plugin.h>
#include <media_kit_video/media_kit_video_plugin.h> #include <media_kit_video/media_kit_video_plugin.h>
#include <screen_retriever/screen_retriever_plugin.h> #include <screen_retriever_linux/screen_retriever_linux_plugin.h>
#include <url_launcher_linux/url_launcher_plugin.h> #include <url_launcher_linux/url_launcher_plugin.h>
#include <window_manager/window_manager_plugin.h> #include <window_manager/window_manager_plugin.h>
@ -35,9 +35,9 @@ void fl_register_plugins(FlPluginRegistry* registry) {
g_autoptr(FlPluginRegistrar) media_kit_video_registrar = g_autoptr(FlPluginRegistrar) media_kit_video_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "MediaKitVideoPlugin"); fl_plugin_registry_get_registrar_for_plugin(registry, "MediaKitVideoPlugin");
media_kit_video_plugin_register_with_registrar(media_kit_video_registrar); media_kit_video_plugin_register_with_registrar(media_kit_video_registrar);
g_autoptr(FlPluginRegistrar) screen_retriever_registrar = g_autoptr(FlPluginRegistrar) screen_retriever_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "ScreenRetrieverPlugin"); fl_plugin_registry_get_registrar_for_plugin(registry, "ScreenRetrieverLinuxPlugin");
screen_retriever_plugin_register_with_registrar(screen_retriever_registrar); screen_retriever_linux_plugin_register_with_registrar(screen_retriever_linux_registrar);
g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);

View file

@ -9,7 +9,7 @@ list(APPEND FLUTTER_PLUGIN_LIST
isar_flutter_libs isar_flutter_libs
media_kit_libs_linux media_kit_libs_linux
media_kit_video media_kit_video
screen_retriever screen_retriever_linux
url_launcher_linux url_launcher_linux
window_manager window_manager
) )

View file

@ -18,7 +18,7 @@ import media_kit_video
import package_info_plus import package_info_plus
import path_provider_foundation import path_provider_foundation
import screen_brightness_macos import screen_brightness_macos
import screen_retriever import screen_retriever_macos
import share_plus import share_plus
import shared_preferences_foundation import shared_preferences_foundation
import sqflite_darwin import sqflite_darwin
@ -42,7 +42,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
ScreenBrightnessMacosPlugin.register(with: registry.registrar(forPlugin: "ScreenBrightnessMacosPlugin")) ScreenBrightnessMacosPlugin.register(with: registry.registrar(forPlugin: "ScreenBrightnessMacosPlugin"))
ScreenRetrieverPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverPlugin")) ScreenRetrieverMacosPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverMacosPlugin"))
SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin")) SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin")) SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))

File diff suppressed because it is too large Load diff

View file

@ -41,7 +41,7 @@ dependencies:
icons_launcher: ^3.0.0 icons_launcher: ^3.0.0
# Network and HTTP # Network and HTTP
chopper: ^7.0.4 chopper: ^8.0.3
cached_network_image: ^3.2.3 cached_network_image: ^3.2.3
http: ^1.1.0 http: ^1.1.0
flutter_cache_manager: ^3.3.0 flutter_cache_manager: ^3.3.0
@ -86,19 +86,19 @@ dependencies:
sliver_tools: ^0.2.10 sliver_tools: ^0.2.10
square_progress_indicator: ^0.0.7 square_progress_indicator: ^0.0.7
flutter_blurhash: ^0.8.2 flutter_blurhash: ^0.8.2
extended_image: ^8.1.1 extended_image: ^9.1.0
flutter_widget_from_html: ^0.14.11 flutter_widget_from_html: ^0.15.3
font_awesome_flutter: ^10.7.0 font_awesome_flutter: ^10.7.0
# Navigation # Navigation
auto_route: ^9.2.2 auto_route: ^9.2.2
url_launcher: ^6.3.1 url_launcher: ^6.3.1
flutter_custom_tabs: ^1.0.4 flutter_custom_tabs: ^2.1.0
# Utility # Utility
path: ^1.8.3 path: ^1.8.3
validators: ^3.0.0 validators: ^3.0.0
file_picker: ^6.1.1 file_picker: ^8.1.7
transparent_image: ^2.0.1 transparent_image: ^2.0.1
universal_html: ^2.2.4 universal_html: ^2.2.4
collection: ^1.17.0 collection: ^1.17.0
@ -109,9 +109,9 @@ dependencies:
package_info_plus: ^8.0.0 package_info_plus: ^8.0.0
open_app_file: ^4.0.2 open_app_file: ^4.0.2
wakelock_plus: ^1.1.4 wakelock_plus: ^1.1.4
screen_brightness: ^1.0.1 screen_brightness: ^2.0.1
window_manager: ^0.3.9 window_manager: ^0.4.3
smtc_windows: ^0.1.1 smtc_windows: ^1.0.0
background_downloader: ^8.5.2 background_downloader: ^8.5.2
# Data # Data
@ -121,11 +121,11 @@ dependencies:
# Other # Other
async: ^2.10.0 async: ^2.10.0
xid: ^1.0.12 xid: ^1.0.12
desktop_drop: 0.4.3 desktop_drop: ^0.5.0
flexible_scrollbar: ^0.1.3 flexible_scrollbar: ^0.1.3
flutter_typeahead: ^5.0.2 flutter_typeahead: ^5.0.2
share_plus: ^7.1.0 share_plus: ^10.1.3
archive: ^3.4.10 archive: ^4.0.2
dart_mappable: ^4.2.2 dart_mappable: ^4.2.2
reorderable_grid: ^1.0.10 reorderable_grid: ^1.0.10
@ -138,13 +138,13 @@ dev_dependencies:
# activated in the `analysis_options.yaml` file located at the root of your # activated in the `analysis_options.yaml` file located at the root of your
# package. See that file for information about deactivating specific lint # package. See that file for information about deactivating specific lint
# rules and activating additional ones. # rules and activating additional ones.
flutter_lints: ^3.0.0 flutter_lints: ^5.0.0
build_runner: ^2.4.11 build_runner: ^2.4.11
chopper_generator: ^7.4.0 chopper_generator: ^8.0.3
json_serializable: ^6.8.0 json_serializable: ^6.8.0
custom_lint: ^0.6.4 custom_lint: ^0.7.0
freezed: ^2.5.2 freezed: ^2.5.2
swagger_dart_code_generator: ^2.15.2 swagger_dart_code_generator: ^3.0.1
riverpod_generator: ^2.4.0 riverpod_generator: ^2.4.0
dart_mappable_builder: ^4.2.3 dart_mappable_builder: ^4.2.3
auto_route_generator: ^9.0.0 auto_route_generator: ^9.0.0

View file

@ -15,7 +15,7 @@
#include <media_kit_video/media_kit_video_plugin_c_api.h> #include <media_kit_video/media_kit_video_plugin_c_api.h>
#include <permission_handler_windows/permission_handler_windows_plugin.h> #include <permission_handler_windows/permission_handler_windows_plugin.h>
#include <screen_brightness_windows/screen_brightness_windows_plugin.h> #include <screen_brightness_windows/screen_brightness_windows_plugin.h>
#include <screen_retriever/screen_retriever_plugin.h> #include <screen_retriever_windows/screen_retriever_windows_plugin_c_api.h>
#include <share_plus/share_plus_windows_plugin_c_api.h> #include <share_plus/share_plus_windows_plugin_c_api.h>
#include <url_launcher_windows/url_launcher_windows.h> #include <url_launcher_windows/url_launcher_windows.h>
#include <window_manager/window_manager_plugin.h> #include <window_manager/window_manager_plugin.h>
@ -39,8 +39,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin")); registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin"));
ScreenBrightnessWindowsPluginRegisterWithRegistrar( ScreenBrightnessWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("ScreenBrightnessWindowsPlugin")); registry->GetRegistrarForPlugin("ScreenBrightnessWindowsPlugin"));
ScreenRetrieverPluginRegisterWithRegistrar( ScreenRetrieverWindowsPluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("ScreenRetrieverPlugin")); registry->GetRegistrarForPlugin("ScreenRetrieverWindowsPluginCApi"));
SharePlusWindowsPluginCApiRegisterWithRegistrar( SharePlusWindowsPluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi")); registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi"));
UrlLauncherWindowsRegisterWithRegistrar( UrlLauncherWindowsRegisterWithRegistrar(

View file

@ -12,7 +12,7 @@ list(APPEND FLUTTER_PLUGIN_LIST
media_kit_video media_kit_video
permission_handler_windows permission_handler_windows
screen_brightness_windows screen_brightness_windows
screen_retriever screen_retriever_windows
share_plus share_plus
url_launcher_windows url_launcher_windows
window_manager window_manager