refactor: Upgrade to Flutter 3.0.0

This commit is contained in:
Christian Pauly 2022-05-12 11:25:34 +02:00
parent 4e497f5c39
commit 22ad34ab0a
21 changed files with 116 additions and 87 deletions

View file

@ -1,5 +1,5 @@
variables: variables:
FLUTTER_VERSION: 2.10.5 FLUTTER_VERSION: 3.0.0
image: cirrusci/flutter:${FLUTTER_VERSION} image: cirrusci/flutter:${FLUTTER_VERSION}
@ -303,7 +303,6 @@ upload-linux-arm64:
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file appimage/FluffyChat-arm64.AppImage ${PACKAGE_REGISTRY_URL}/FluffyChat-arm64.AppImage curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file appimage/FluffyChat-arm64.AppImage ${PACKAGE_REGISTRY_URL}/FluffyChat-arm64.AppImage
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file appimage/FluffyChat-arm64.AppImage.zsync ${PACKAGE_REGISTRY_URL}/FluffyChat-arm64.AppImage.zsync curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file appimage/FluffyChat-arm64.AppImage.zsync ${PACKAGE_REGISTRY_URL}/FluffyChat-arm64.AppImage.zsync
upload-windows: upload-windows:
extends: .release extends: .release
image: alpine:latest image: alpine:latest

View file

@ -1,10 +1,45 @@
# This file tracks properties of this Flutter project. # This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc. # Used by Flutter tool to assess capabilities and perform upgrades etc.
# #
# This file should be version controlled and should not be manually edited. # This file should be version controlled.
version: version:
revision: 657830b4c77aecfd0e32ec6504c859213dded97a revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
channel: master channel: stable
project_type: app project_type: app
# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
- platform: android
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
- platform: ios
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
- platform: linux
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
- platform: macos
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
- platform: web
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
- platform: windows
create_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
base_revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
# User provided section
# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'

View file

@ -28,7 +28,6 @@
tools:overrideLibrary="io.wazo.callkeep, net.touchcapture.qr.flutterqr, com.cloudwebrtc.webrtc, org.webrtc, com.it_nomads.fluttersecurestorage, com.pichillilorenzo.flutter_inappwebview, com.example.video_compress, com.otaliastudios.transcoder, com.otaliastudios.opengl, com.kineapps.flutter_file_dialog"/> tools:overrideLibrary="io.wazo.callkeep, net.touchcapture.qr.flutterqr, com.cloudwebrtc.webrtc, org.webrtc, com.it_nomads.fluttersecurestorage, com.pichillilorenzo.flutter_inappwebview, com.example.video_compress, com.otaliastudios.transcoder, com.otaliastudios.opengl, com.kineapps.flutter_file_dialog"/>
<application <application
android:name=".Application"
android:label="FluffyChat" android:label="FluffyChat"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:requestLegacyExternalStorage="true" android:requestLegacyExternalStorage="true"

View file

@ -1,17 +0,0 @@
package chat.fluffy.fluffychat
import io.flutter.app.FlutterApplication
import io.flutter.plugin.common.PluginRegistry
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback
import io.flutter.view.FlutterMain
class Application : FlutterApplication(), PluginRegistrantCallback {
override fun onCreate() {
super.onCreate()
FlutterMain.startInitialization(this)
}
override fun registerWith(registry: PluginRegistry?) {
}
}

View file

@ -8,7 +8,6 @@ import 'package:adaptive_theme/adaptive_theme.dart';
import 'package:flutter_app_lock/flutter_app_lock.dart'; import 'package:flutter_app_lock/flutter_app_lock.dart';
import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:future_loading_dialog/future_loading_dialog.dart'; import 'package:future_loading_dialog/future_loading_dialog.dart';
import 'package:gaeilge_flutter_l10n/gaeilge_flutter_l10n.dart';
import 'package:matrix/matrix.dart'; import 'package:matrix/matrix.dart';
import 'package:universal_html/html.dart' as html; import 'package:universal_html/html.dart' as html;
import 'package:vrouter/vrouter.dart'; import 'package:vrouter/vrouter.dart';
@ -114,7 +113,7 @@ class _FluffyChatAppState extends State<FluffyChatApp> {
_router ??= GlobalKey<VRouterState>(); _router ??= GlobalKey<VRouterState>();
if (columnMode != newColumns > 1) { if (columnMode != newColumns > 1) {
Logs().v('Set Column Mode = $columnMode'); Logs().v('Set Column Mode = $columnMode');
WidgetsBinding.instance?.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
setState(() { setState(() {
_initialUrl = _router?.currentState?.url; _initialUrl = _router?.currentState?.url;
columnMode = newColumns > 1; columnMode = newColumns > 1;
@ -131,7 +130,6 @@ class _FluffyChatAppState extends State<FluffyChatApp> {
darkTheme: darkTheme, darkTheme: darkTheme,
localizationsDelegates: const [ localizationsDelegates: const [
...L10n.localizationsDelegates, ...L10n.localizationsDelegates,
GaMaterialLocalizations.delegate
], ],
supportedLocales: L10n.supportedLocales, supportedLocales: L10n.supportedLocales,
initialUrl: _initialUrl ?? '/', initialUrl: _initialUrl ?? '/',
@ -141,7 +139,7 @@ class _FluffyChatAppState extends State<FluffyChatApp> {
LoadingDialog.defaultBackLabel = L10n.of(context)!.close; LoadingDialog.defaultBackLabel = L10n.of(context)!.close;
LoadingDialog.defaultOnError = LoadingDialog.defaultOnError =
(e) => (e as Object?)!.toLocalizedString(context); (e) => (e as Object?)!.toLocalizedString(context);
WidgetsBinding.instance?.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
SystemChrome.setSystemUIOverlayStyle( SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle( SystemUiOverlayStyle(
statusBarColor: Colors.transparent, statusBarColor: Colors.transparent,

View file

@ -147,27 +147,27 @@ class _BootstrapDialogState extends State<BootstrapDialog> {
case BootstrapState.loading: case BootstrapState.loading:
break; break;
case BootstrapState.askWipeSsss: case BootstrapState.askWipeSsss:
WidgetsBinding.instance!.addPostFrameCallback( WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.wipeSsss(_wipe!), (_) => bootstrap.wipeSsss(_wipe!),
); );
break; break;
case BootstrapState.askBadSsss: case BootstrapState.askBadSsss:
WidgetsBinding.instance!.addPostFrameCallback( WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.ignoreBadSecrets(true), (_) => bootstrap.ignoreBadSecrets(true),
); );
break; break;
case BootstrapState.askUseExistingSsss: case BootstrapState.askUseExistingSsss:
WidgetsBinding.instance!.addPostFrameCallback( WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.useExistingSsss(!_wipe!), (_) => bootstrap.useExistingSsss(!_wipe!),
); );
break; break;
case BootstrapState.askUnlockSsss: case BootstrapState.askUnlockSsss:
WidgetsBinding.instance!.addPostFrameCallback( WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.unlockedSsss(), (_) => bootstrap.unlockedSsss(),
); );
break; break;
case BootstrapState.askNewSsss: case BootstrapState.askNewSsss:
WidgetsBinding.instance!.addPostFrameCallback( WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.newSsss(), (_) => bootstrap.newSsss(),
); );
break; break;
@ -312,12 +312,12 @@ class _BootstrapDialogState extends State<BootstrapDialog> {
), ),
); );
case BootstrapState.askWipeCrossSigning: case BootstrapState.askWipeCrossSigning:
WidgetsBinding.instance!.addPostFrameCallback( WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.wipeCrossSigning(_wipe!), (_) => bootstrap.wipeCrossSigning(_wipe!),
); );
break; break;
case BootstrapState.askSetupCrossSigning: case BootstrapState.askSetupCrossSigning:
WidgetsBinding.instance!.addPostFrameCallback( WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.askSetupCrossSigning( (_) => bootstrap.askSetupCrossSigning(
setupMasterKey: true, setupMasterKey: true,
setupSelfSigningKey: true, setupSelfSigningKey: true,
@ -326,13 +326,13 @@ class _BootstrapDialogState extends State<BootstrapDialog> {
); );
break; break;
case BootstrapState.askWipeOnlineKeyBackup: case BootstrapState.askWipeOnlineKeyBackup:
WidgetsBinding.instance!.addPostFrameCallback( WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.wipeOnlineKeyBackup(_wipe!), (_) => bootstrap.wipeOnlineKeyBackup(_wipe!),
); );
break; break;
case BootstrapState.askSetupOnlineKeyBackup: case BootstrapState.askSetupOnlineKeyBackup:
WidgetsBinding.instance!.addPostFrameCallback( WidgetsBinding.instance.addPostFrameCallback(
(_) => bootstrap.askSetupOnlineKeyBackup(true), (_) => bootstrap.askSetupOnlineKeyBackup(true),
); );
break; break;

View file

@ -171,7 +171,7 @@ class ChatController extends State<Chat> {
final voipPlugin = Matrix.of(context).voipPlugin; final voipPlugin = Matrix.of(context).voipPlugin;
if (voipPlugin != null) { if (voipPlugin != null) {
WidgetsBinding.instance?.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
CallKeepManager().setVoipPlugin(voipPlugin); CallKeepManager().setVoipPlugin(voipPlugin);
CallKeepManager().initialize().catchError((_) => true); CallKeepManager().initialize().catchError((_) => true);
}); });
@ -210,7 +210,7 @@ class ChatController extends State<Chat> {
// when the scroll controller is attached we want to scroll to an event id, if specified // when the scroll controller is attached we want to scroll to an event id, if specified
// and update the scroll controller...which will trigger a request history, if the // and update the scroll controller...which will trigger a request history, if the
// "load more" button is visible on the screen // "load more" button is visible on the screen
SchedulerBinding.instance!.addPostFrameCallback((_) async { SchedulerBinding.instance.addPostFrameCallback((_) async {
if (mounted) { if (mounted) {
final event = VRouter.of(context).queryParameters['event']; final event = VRouter.of(context).queryParameters['event'];
if (event != null) { if (event != null) {

View file

@ -91,7 +91,7 @@ class _ImageBubbleState extends State<ImageBubble> {
try { try {
final res = await widget.event final res = await widget.event
.downloadAndDecryptAttachmentCached(getThumbnail: getThumbnail); .downloadAndDecryptAttachmentCached(getThumbnail: getThumbnail);
WidgetsBinding.instance!.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
if (getThumbnail) { if (getThumbnail) {
if (mounted) { if (mounted) {
setState(() => _thumbnail = res); setState(() => _thumbnail = res);
@ -106,7 +106,7 @@ class _ImageBubbleState extends State<ImageBubble> {
} }
}); });
} catch (err) { } catch (err) {
WidgetsBinding.instance!.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
if (mounted) { if (mounted) {
setState(() => _error = err); setState(() => _error = err);
} }
@ -278,7 +278,7 @@ class _ImageBubbleState extends State<ImageBubble> {
errorBuilder: (context, error, stacktrace) { errorBuilder: (context, error, stacktrace) {
if (widget.event.hasThumbnail && !_requestedThumbnailOnFailure) { if (widget.event.hasThumbnail && !_requestedThumbnailOnFailure) {
_requestedThumbnailOnFailure = true; _requestedThumbnailOnFailure = true;
WidgetsBinding.instance!.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
setState(() { setState(() {
_file = null; _file = null;
_requestFile(getThumbnail: true); _requestFile(getThumbnail: true);
@ -352,7 +352,7 @@ class _ImageBubbleState extends State<ImageBubble> {
// the image failed to load but the event has a thumbnail attached....so we can // the image failed to load but the event has a thumbnail attached....so we can
// try to load this one! // try to load this one!
_requestedThumbnailOnFailure = true; _requestedThumbnailOnFailure = true;
WidgetsBinding.instance!.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
setState(() { setState(() {
thumbnailUrl = widget.event thumbnailUrl = widget.event
.getAttachmentUrl( .getAttachmentUrl(

View file

@ -26,6 +26,7 @@ import '../../widgets/matrix.dart';
import '../bootstrap/bootstrap_dialog.dart'; import '../bootstrap/bootstrap_dialog.dart';
enum SelectMode { normal, share, select } enum SelectMode { normal, share, select }
enum PopupMenuAction { enum PopupMenuAction {
settings, settings,
invite, invite,
@ -171,7 +172,7 @@ class ChatListController extends State<ChatList> with TickerProviderStateMixin {
void _processIncomingUris(String? text) async { void _processIncomingUris(String? text) async {
if (text == null) return; if (text == null) return;
VRouter.of(context).to('/rooms'); VRouter.of(context).to('/rooms');
WidgetsBinding.instance!.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
UrlLauncher(context, text).openMatrixToUrl(); UrlLauncher(context, text).openMatrixToUrl();
}); });
} }
@ -475,7 +476,7 @@ class ChatListController extends State<ChatList> with TickerProviderStateMixin {
setState(() { setState(() {
waitForFirstSync = true; waitForFirstSync = true;
}); });
WidgetsBinding.instance!.addPostFrameCallback((_) => checkBootstrap()); WidgetsBinding.instance.addPostFrameCallback((_) => checkBootstrap());
return; return;
} }
@ -572,7 +573,7 @@ class ChatListController extends State<ChatList> with TickerProviderStateMixin {
} }
void resetActiveBundle() { void resetActiveBundle() {
WidgetsBinding.instance!.addPostFrameCallback((timeStamp) { WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
setState(() { setState(() {
Matrix.of(context).activeBundle = null; Matrix.of(context).activeBundle = null;
}); });

View file

@ -110,7 +110,7 @@ class SearchController extends State<Search> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
WidgetsBinding.instance?.addPostFrameCallback((_) async { WidgetsBinding.instance.addPostFrameCallback((_) async {
controller.text = VRouter.of(context).queryParameters['query'] ?? ''; controller.text = VRouter.of(context).queryParameters['query'] ?? '';
final server = await Store().getItem(_serverStoreNamespace); final server = await Store().getItem(_serverStoreNamespace);
if (server?.isNotEmpty ?? false) { if (server?.isNotEmpty ?? false) {

View file

@ -83,7 +83,7 @@ class SettingsStoriesController extends State<SettingsStories> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
WidgetsBinding.instance?.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
setState(() { setState(() {
loadUsers = _loadUsers(); loadUsers = _loadUsers();
}); });

View file

@ -359,7 +359,7 @@ class StoryPageController extends State<StoryPage> {
} }
void _setLoadingMode(bool mode) => loadingMode != mode void _setLoadingMode(bool mode) => loadingMode != mode
? WidgetsBinding.instance?.addPostFrameCallback((_) { ? WidgetsBinding.instance.addPostFrameCallback((_) {
setState(() { setState(() {
loadingMode = mode; loadingMode = mode;
}); });

View file

@ -71,7 +71,7 @@ class BackgroundPush {
bool upAction = false; bool upAction = false;
BackgroundPush._(this.client, {this.onFcmError}) { BackgroundPush._(this.client) {
onLogin ??= onLogin ??=
client.onLoginStateChanged.stream.listen(handleLoginStateChanged); client.onLoginStateChanged.stream.listen(handleLoginStateChanged);
onRoomSync ??= client.onSync.stream onRoomSync ??= client.onSync.stream

View file

@ -28,10 +28,8 @@ class VoipPlugin extends WidgetsBindingObserver implements WebRTCDelegate {
.catchError((e) => _currentConnectivity = ConnectivityResult.none); .catchError((e) => _currentConnectivity = ConnectivityResult.none);
if (!kIsWeb) { if (!kIsWeb) {
final wb = WidgetsBinding.instance; final wb = WidgetsBinding.instance;
wb?.addObserver(this); wb.addObserver(this);
if (wb != null) { didChangeAppLifecycleState(wb.lifecycleState!);
didChangeAppLifecycleState(wb.lifecycleState!);
}
} }
} }

View file

@ -11,7 +11,7 @@ class LoadingView extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
WidgetsBinding.instance?.addPostFrameCallback( WidgetsBinding.instance.addPostFrameCallback(
(_) => VRouter.of(context).to( (_) => VRouter.of(context).to(
Matrix.of(context) Matrix.of(context)
.widget .widget

View file

@ -13,7 +13,7 @@ class LoginScaffold extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
WidgetsBinding.instance?.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
SystemChrome.setSystemUIOverlayStyle( SystemChrome.setSystemUIOverlayStyle(
const SystemUiOverlayStyle( const SystemUiOverlayStyle(
statusBarIconBrightness: Brightness.light, statusBarIconBrightness: Brightness.light,

View file

@ -253,7 +253,7 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
WidgetsBinding.instance!.addObserver(this); WidgetsBinding.instance.addObserver(this);
initMatrix(); initMatrix();
if (PlatformInfos.isWeb) { if (PlatformInfos.isWeb) {
initConfig().then((_) => initSettings()); initConfig().then((_) => initSettings());
@ -382,7 +382,7 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
void initMatrix() { void initMatrix() {
// Display the app lock // Display the app lock
if (PlatformInfos.isMobile) { if (PlatformInfos.isMobile) {
WidgetsBinding.instance!.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
([TargetPlatform.linux].contains(Theme.of(context).platform) ([TargetPlatform.linux].contains(Theme.of(context).platform)
? SharedPreferences.getInstance() ? SharedPreferences.getInstance()
.then((prefs) => prefs.getString(SettingKeys.appLockKey)) .then((prefs) => prefs.getString(SettingKeys.appLockKey))
@ -513,7 +513,7 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
@override @override
void dispose() { void dispose() {
WidgetsBinding.instance!.removeObserver(this); WidgetsBinding.instance.removeObserver(this);
onRoomKeyRequestSub.values.map((s) => s.cancel()); onRoomKeyRequestSub.values.map((s) => s.cancel());
onKeyVerificationRequestSub.values.map((s) => s.cancel()); onKeyVerificationRequestSub.values.map((s) => s.cancel());

View file

@ -10,6 +10,9 @@ list(APPEND FLUTTER_PLUGIN_LIST
url_launcher_linux url_launcher_linux
) )
list(APPEND FLUTTER_FFI_PLUGIN_LIST
)
set(PLUGIN_BUNDLED_LIBRARIES) set(PLUGIN_BUNDLED_LIBRARIES)
foreach(plugin ${FLUTTER_PLUGIN_LIST}) foreach(plugin ${FLUTTER_PLUGIN_LIST})
@ -18,3 +21,8 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST})
list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>) list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
endforeach(plugin) endforeach(plugin)
foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin})
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
endforeach(ffi_plugin)

View file

@ -56,7 +56,7 @@ packages:
name: archive name: archive
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.1.6" version: "3.1.11"
args: args:
dependency: transitive dependency: transitive
description: description:
@ -182,7 +182,7 @@ packages:
name: collection name: collection
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.15.0" version: "1.16.0"
connectivity_plus: connectivity_plus:
dependency: "direct main" dependency: "direct main"
description: description:
@ -240,7 +240,7 @@ packages:
name: coverage name: coverage
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.0.3" version: "1.2.0"
cross_file: cross_file:
dependency: transitive dependency: transitive
description: description:
@ -394,7 +394,7 @@ packages:
name: fake_async name: fake_async
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0" version: "1.3.0"
ffi: ffi:
dependency: transitive dependency: transitive
description: description:
@ -687,7 +687,7 @@ packages:
name: flutter_typeahead name: flutter_typeahead
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.2.4" version: "3.2.5"
flutter_web_auth: flutter_web_auth:
dependency: "direct main" dependency: "direct main"
description: description:
@ -726,13 +726,6 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.2.3" version: "0.2.3"
gaeilge_flutter_l10n:
dependency: "direct main"
description:
name: gaeilge_flutter_l10n
url: "https://pub.dartlang.org"
source: hosted
version: "1.0.0"
geolocator: geolocator:
dependency: "direct main" dependency: "direct main"
description: description:
@ -905,7 +898,7 @@ packages:
name: js name: js
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.6.3" version: "0.6.4"
just_audio: just_audio:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1005,7 +998,7 @@ packages:
name: material_color_utilities name: material_color_utilities
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.1.3" version: "0.1.4"
matrix: matrix:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1161,7 +1154,7 @@ packages:
name: path name: path
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.0" version: "1.8.1"
path_drawing: path_drawing:
dependency: transitive dependency: transitive
description: description:
@ -1361,9 +1354,11 @@ packages:
qr_code_scanner: qr_code_scanner:
dependency: "direct main" dependency: "direct main"
description: description:
name: qr_code_scanner path: "."
url: "https://pub.dartlang.org" ref: fix_break_changes_platform
source: hosted resolved-ref: "0feca6f15042c279ff575c559a3430df917b623d"
url: "https://github.com/xeinebiu/qr_code_scanner.git"
source: git
version: "0.7.0" version: "0.7.0"
qr_flutter: qr_flutter:
dependency: "direct main" dependency: "direct main"
@ -1616,7 +1611,7 @@ packages:
name: source_span name: source_span
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.1" version: "1.8.2"
sqflite: sqflite:
dependency: transitive dependency: transitive
description: description:
@ -1686,21 +1681,21 @@ packages:
name: test name: test
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.19.5" version: "1.20.2"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.4.8" version: "0.4.9"
test_core: test_core:
dependency: transitive dependency: transitive
description: description:
name: test_core name: test_core
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.4.9" version: "0.4.11"
timezone: timezone:
dependency: transitive dependency: transitive
description: description:
@ -1882,7 +1877,7 @@ packages:
name: vector_math name: vector_math
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.1" version: "2.1.2"
very_good_analysis: very_good_analysis:
dependency: transitive dependency: transitive
description: description:
@ -1945,7 +1940,7 @@ packages:
name: vm_service name: vm_service
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "7.5.0" version: "8.2.2"
vrouter: vrouter:
dependency: "direct main" dependency: "direct main"
description: description:
@ -2059,5 +2054,5 @@ packages:
source: hosted source: hosted
version: "3.1.0" version: "3.1.0"
sdks: sdks:
dart: ">=2.16.1 <3.0.0" dart: ">=2.17.0-0 <3.0.0"
flutter: ">=2.8.0" flutter: ">=2.8.0"

View file

@ -4,7 +4,7 @@ publish_to: none
version: 1.4.0+2323 version: 1.4.0+2323
environment: environment:
sdk: '>=2.12.0 <3.0.0' sdk: ">=2.12.0 <3.0.0"
dependencies: dependencies:
adaptive_dialog: ^1.5.1 adaptive_dialog: ^1.5.1
@ -43,11 +43,10 @@ dependencies:
flutter_secure_storage: ^5.0.2 flutter_secure_storage: ^5.0.2
flutter_slidable: ^1.2.0 flutter_slidable: ^1.2.0
flutter_svg: ^0.22.0 flutter_svg: ^0.22.0
flutter_typeahead: ^3.2.4 flutter_typeahead: ^3.2.5
flutter_web_auth: ^0.4.0 flutter_web_auth: ^0.4.0
flutter_webrtc: ^0.8.2 flutter_webrtc: ^0.8.2
future_loading_dialog: ^0.2.3 future_loading_dialog: ^0.2.3
gaeilge_flutter_l10n: ^1.0.0
geolocator: ^7.6.2 geolocator: ^7.6.2
hive_flutter: ^1.1.0 hive_flutter: ^1.1.0
image: ^3.1.1 image: ^3.1.1
@ -147,9 +146,15 @@ dependency_overrides:
url: https://github.com/TheOneWithTheBraid/keyboard_shortcuts.git url: https://github.com/TheOneWithTheBraid/keyboard_shortcuts.git
ref: null-safety ref: null-safety
provider: 5.0.0 provider: 5.0.0
# For Flutter 3.0.0 compatibility
# https://github.com/juliuscanute/qr_code_scanner/issues/532
qr_code_scanner:
git:
url: https://github.com/xeinebiu/qr_code_scanner.git
ref: fix_break_changes_platform
# wating for `Listenable` implementation # wating for `Listenable` implementation
# Upstream pull request: https://github.com/AdamJonsson/snapping_sheet/pull/84 # Upstream pull request: https://github.com/AdamJonsson/snapping_sheet/pull/84
snapping_sheet: snapping_sheet:
git: git:
url: https://github.com/TheOneWithTheBraid/snapping_sheet.git url: https://github.com/TheOneWithTheBraid/snapping_sheet.git
ref: listenable ref: listenable

View file

@ -12,6 +12,9 @@ list(APPEND FLUTTER_PLUGIN_LIST
url_launcher_windows url_launcher_windows
) )
list(APPEND FLUTTER_FFI_PLUGIN_LIST
)
set(PLUGIN_BUNDLED_LIBRARIES) set(PLUGIN_BUNDLED_LIBRARIES)
foreach(plugin ${FLUTTER_PLUGIN_LIST}) foreach(plugin ${FLUTTER_PLUGIN_LIST})
@ -20,3 +23,8 @@ foreach(plugin ${FLUTTER_PLUGIN_LIST})
list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>) list(APPEND PLUGIN_BUNDLED_LIBRARIES $<TARGET_FILE:${plugin}_plugin>)
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries})
endforeach(plugin) endforeach(plugin)
foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST})
add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin})
list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries})
endforeach(ffi_plugin)