mirror of
				https://gitlab.com/famedly/fluffychat.git
				synced 2025-11-03 22:07:23 +01:00 
			
		
		
		
	refactor: Upgrade to Flutter 3.0.0
This commit is contained in:
		
							parent
							
								
									38a6bc7ea0
								
							
						
					
					
						commit
						a718152905
					
				@ -1,5 +1,5 @@
 | 
			
		||||
variables:
 | 
			
		||||
  FLUTTER_VERSION: 2.10.5
 | 
			
		||||
  FLUTTER_VERSION: 3.0.0
 | 
			
		||||
 | 
			
		||||
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.zsync ${PACKAGE_REGISTRY_URL}/FluffyChat-arm64.AppImage.zsync
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
upload-windows:
 | 
			
		||||
  extends: .release
 | 
			
		||||
  image: alpine:latest
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										41
									
								
								.metadata
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								.metadata
									
									
									
									
									
								
							@ -1,10 +1,45 @@
 | 
			
		||||
# This file tracks properties of this Flutter project.
 | 
			
		||||
# 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:
 | 
			
		||||
  revision: 657830b4c77aecfd0e32ec6504c859213dded97a
 | 
			
		||||
  channel: master
 | 
			
		||||
  revision: ee4e09cce01d6f2d7f4baebd247fde02e5008851
 | 
			
		||||
  channel: stable
 | 
			
		||||
 | 
			
		||||
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'
 | 
			
		||||
 | 
			
		||||
@ -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"/>
 | 
			
		||||
 | 
			
		||||
    <application
 | 
			
		||||
        android:name=".Application"
 | 
			
		||||
        android:label="FluffyChat"
 | 
			
		||||
        android:icon="@mipmap/ic_launcher"
 | 
			
		||||
        android:requestLegacyExternalStorage="true"
 | 
			
		||||
 | 
			
		||||
@ -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?) {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -8,7 +8,6 @@ import 'package:adaptive_theme/adaptive_theme.dart';
 | 
			
		||||
import 'package:flutter_app_lock/flutter_app_lock.dart';
 | 
			
		||||
import 'package:flutter_gen/gen_l10n/l10n.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:universal_html/html.dart' as html;
 | 
			
		||||
import 'package:vrouter/vrouter.dart';
 | 
			
		||||
@ -114,7 +113,7 @@ class _FluffyChatAppState extends State<FluffyChatApp> {
 | 
			
		||||
          _router ??= GlobalKey<VRouterState>();
 | 
			
		||||
          if (columnMode != newColumns > 1) {
 | 
			
		||||
            Logs().v('Set Column Mode = $columnMode');
 | 
			
		||||
            WidgetsBinding.instance?.addPostFrameCallback((_) {
 | 
			
		||||
            WidgetsBinding.instance.addPostFrameCallback((_) {
 | 
			
		||||
              setState(() {
 | 
			
		||||
                _initialUrl = _router?.currentState?.url;
 | 
			
		||||
                columnMode = newColumns > 1;
 | 
			
		||||
@ -131,7 +130,6 @@ class _FluffyChatAppState extends State<FluffyChatApp> {
 | 
			
		||||
            darkTheme: darkTheme,
 | 
			
		||||
            localizationsDelegates: const [
 | 
			
		||||
              ...L10n.localizationsDelegates,
 | 
			
		||||
              GaMaterialLocalizations.delegate
 | 
			
		||||
            ],
 | 
			
		||||
            supportedLocales: L10n.supportedLocales,
 | 
			
		||||
            initialUrl: _initialUrl ?? '/',
 | 
			
		||||
@ -141,7 +139,7 @@ class _FluffyChatAppState extends State<FluffyChatApp> {
 | 
			
		||||
              LoadingDialog.defaultBackLabel = L10n.of(context)!.close;
 | 
			
		||||
              LoadingDialog.defaultOnError =
 | 
			
		||||
                  (e) => (e as Object?)!.toLocalizedString(context);
 | 
			
		||||
              WidgetsBinding.instance?.addPostFrameCallback((_) {
 | 
			
		||||
              WidgetsBinding.instance.addPostFrameCallback((_) {
 | 
			
		||||
                SystemChrome.setSystemUIOverlayStyle(
 | 
			
		||||
                  SystemUiOverlayStyle(
 | 
			
		||||
                    statusBarColor: Colors.transparent,
 | 
			
		||||
 | 
			
		||||
@ -147,27 +147,27 @@ class _BootstrapDialogState extends State<BootstrapDialog> {
 | 
			
		||||
        case BootstrapState.loading:
 | 
			
		||||
          break;
 | 
			
		||||
        case BootstrapState.askWipeSsss:
 | 
			
		||||
          WidgetsBinding.instance!.addPostFrameCallback(
 | 
			
		||||
          WidgetsBinding.instance.addPostFrameCallback(
 | 
			
		||||
            (_) => bootstrap.wipeSsss(_wipe!),
 | 
			
		||||
          );
 | 
			
		||||
          break;
 | 
			
		||||
        case BootstrapState.askBadSsss:
 | 
			
		||||
          WidgetsBinding.instance!.addPostFrameCallback(
 | 
			
		||||
          WidgetsBinding.instance.addPostFrameCallback(
 | 
			
		||||
            (_) => bootstrap.ignoreBadSecrets(true),
 | 
			
		||||
          );
 | 
			
		||||
          break;
 | 
			
		||||
        case BootstrapState.askUseExistingSsss:
 | 
			
		||||
          WidgetsBinding.instance!.addPostFrameCallback(
 | 
			
		||||
          WidgetsBinding.instance.addPostFrameCallback(
 | 
			
		||||
            (_) => bootstrap.useExistingSsss(!_wipe!),
 | 
			
		||||
          );
 | 
			
		||||
          break;
 | 
			
		||||
        case BootstrapState.askUnlockSsss:
 | 
			
		||||
          WidgetsBinding.instance!.addPostFrameCallback(
 | 
			
		||||
          WidgetsBinding.instance.addPostFrameCallback(
 | 
			
		||||
            (_) => bootstrap.unlockedSsss(),
 | 
			
		||||
          );
 | 
			
		||||
          break;
 | 
			
		||||
        case BootstrapState.askNewSsss:
 | 
			
		||||
          WidgetsBinding.instance!.addPostFrameCallback(
 | 
			
		||||
          WidgetsBinding.instance.addPostFrameCallback(
 | 
			
		||||
            (_) => bootstrap.newSsss(),
 | 
			
		||||
          );
 | 
			
		||||
          break;
 | 
			
		||||
@ -312,12 +312,12 @@ class _BootstrapDialogState extends State<BootstrapDialog> {
 | 
			
		||||
            ),
 | 
			
		||||
          );
 | 
			
		||||
        case BootstrapState.askWipeCrossSigning:
 | 
			
		||||
          WidgetsBinding.instance!.addPostFrameCallback(
 | 
			
		||||
          WidgetsBinding.instance.addPostFrameCallback(
 | 
			
		||||
            (_) => bootstrap.wipeCrossSigning(_wipe!),
 | 
			
		||||
          );
 | 
			
		||||
          break;
 | 
			
		||||
        case BootstrapState.askSetupCrossSigning:
 | 
			
		||||
          WidgetsBinding.instance!.addPostFrameCallback(
 | 
			
		||||
          WidgetsBinding.instance.addPostFrameCallback(
 | 
			
		||||
            (_) => bootstrap.askSetupCrossSigning(
 | 
			
		||||
              setupMasterKey: true,
 | 
			
		||||
              setupSelfSigningKey: true,
 | 
			
		||||
@ -326,13 +326,13 @@ class _BootstrapDialogState extends State<BootstrapDialog> {
 | 
			
		||||
          );
 | 
			
		||||
          break;
 | 
			
		||||
        case BootstrapState.askWipeOnlineKeyBackup:
 | 
			
		||||
          WidgetsBinding.instance!.addPostFrameCallback(
 | 
			
		||||
          WidgetsBinding.instance.addPostFrameCallback(
 | 
			
		||||
            (_) => bootstrap.wipeOnlineKeyBackup(_wipe!),
 | 
			
		||||
          );
 | 
			
		||||
 | 
			
		||||
          break;
 | 
			
		||||
        case BootstrapState.askSetupOnlineKeyBackup:
 | 
			
		||||
          WidgetsBinding.instance!.addPostFrameCallback(
 | 
			
		||||
          WidgetsBinding.instance.addPostFrameCallback(
 | 
			
		||||
            (_) => bootstrap.askSetupOnlineKeyBackup(true),
 | 
			
		||||
          );
 | 
			
		||||
          break;
 | 
			
		||||
 | 
			
		||||
@ -171,7 +171,7 @@ class ChatController extends State<Chat> {
 | 
			
		||||
    final voipPlugin = Matrix.of(context).voipPlugin;
 | 
			
		||||
 | 
			
		||||
    if (voipPlugin != null) {
 | 
			
		||||
      WidgetsBinding.instance?.addPostFrameCallback((_) {
 | 
			
		||||
      WidgetsBinding.instance.addPostFrameCallback((_) {
 | 
			
		||||
        CallKeepManager().setVoipPlugin(voipPlugin);
 | 
			
		||||
        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
 | 
			
		||||
      // and update the scroll controller...which will trigger a request history, if the
 | 
			
		||||
      // "load more" button is visible on the screen
 | 
			
		||||
      SchedulerBinding.instance!.addPostFrameCallback((_) async {
 | 
			
		||||
      SchedulerBinding.instance.addPostFrameCallback((_) async {
 | 
			
		||||
        if (mounted) {
 | 
			
		||||
          final event = VRouter.of(context).queryParameters['event'];
 | 
			
		||||
          if (event != null) {
 | 
			
		||||
 | 
			
		||||
@ -91,7 +91,7 @@ class _ImageBubbleState extends State<ImageBubble> {
 | 
			
		||||
    try {
 | 
			
		||||
      final res = await widget.event
 | 
			
		||||
          .downloadAndDecryptAttachmentCached(getThumbnail: getThumbnail);
 | 
			
		||||
      WidgetsBinding.instance!.addPostFrameCallback((_) {
 | 
			
		||||
      WidgetsBinding.instance.addPostFrameCallback((_) {
 | 
			
		||||
        if (getThumbnail) {
 | 
			
		||||
          if (mounted) {
 | 
			
		||||
            setState(() => _thumbnail = res);
 | 
			
		||||
@ -106,7 +106,7 @@ class _ImageBubbleState extends State<ImageBubble> {
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
    } catch (err) {
 | 
			
		||||
      WidgetsBinding.instance!.addPostFrameCallback((_) {
 | 
			
		||||
      WidgetsBinding.instance.addPostFrameCallback((_) {
 | 
			
		||||
        if (mounted) {
 | 
			
		||||
          setState(() => _error = err);
 | 
			
		||||
        }
 | 
			
		||||
@ -278,7 +278,7 @@ class _ImageBubbleState extends State<ImageBubble> {
 | 
			
		||||
        errorBuilder: (context, error, stacktrace) {
 | 
			
		||||
          if (widget.event.hasThumbnail && !_requestedThumbnailOnFailure) {
 | 
			
		||||
            _requestedThumbnailOnFailure = true;
 | 
			
		||||
            WidgetsBinding.instance!.addPostFrameCallback((_) {
 | 
			
		||||
            WidgetsBinding.instance.addPostFrameCallback((_) {
 | 
			
		||||
              setState(() {
 | 
			
		||||
                _file = null;
 | 
			
		||||
                _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
 | 
			
		||||
            // try to load this one!
 | 
			
		||||
            _requestedThumbnailOnFailure = true;
 | 
			
		||||
            WidgetsBinding.instance!.addPostFrameCallback((_) {
 | 
			
		||||
            WidgetsBinding.instance.addPostFrameCallback((_) {
 | 
			
		||||
              setState(() {
 | 
			
		||||
                thumbnailUrl = widget.event
 | 
			
		||||
                    .getAttachmentUrl(
 | 
			
		||||
 | 
			
		||||
@ -26,6 +26,7 @@ import '../../widgets/matrix.dart';
 | 
			
		||||
import '../bootstrap/bootstrap_dialog.dart';
 | 
			
		||||
 | 
			
		||||
enum SelectMode { normal, share, select }
 | 
			
		||||
 | 
			
		||||
enum PopupMenuAction {
 | 
			
		||||
  settings,
 | 
			
		||||
  invite,
 | 
			
		||||
@ -171,7 +172,7 @@ class ChatListController extends State<ChatList> with TickerProviderStateMixin {
 | 
			
		||||
  void _processIncomingUris(String? text) async {
 | 
			
		||||
    if (text == null) return;
 | 
			
		||||
    VRouter.of(context).to('/rooms');
 | 
			
		||||
    WidgetsBinding.instance!.addPostFrameCallback((_) {
 | 
			
		||||
    WidgetsBinding.instance.addPostFrameCallback((_) {
 | 
			
		||||
      UrlLauncher(context, text).openMatrixToUrl();
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
@ -475,7 +476,7 @@ class ChatListController extends State<ChatList> with TickerProviderStateMixin {
 | 
			
		||||
    setState(() {
 | 
			
		||||
      waitForFirstSync = true;
 | 
			
		||||
    });
 | 
			
		||||
    WidgetsBinding.instance!.addPostFrameCallback((_) => checkBootstrap());
 | 
			
		||||
    WidgetsBinding.instance.addPostFrameCallback((_) => checkBootstrap());
 | 
			
		||||
    return;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -572,7 +573,7 @@ class ChatListController extends State<ChatList> with TickerProviderStateMixin {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void resetActiveBundle() {
 | 
			
		||||
    WidgetsBinding.instance!.addPostFrameCallback((timeStamp) {
 | 
			
		||||
    WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
 | 
			
		||||
      setState(() {
 | 
			
		||||
        Matrix.of(context).activeBundle = null;
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
@ -110,7 +110,7 @@ class SearchController extends State<Search> {
 | 
			
		||||
  @override
 | 
			
		||||
  void initState() {
 | 
			
		||||
    super.initState();
 | 
			
		||||
    WidgetsBinding.instance?.addPostFrameCallback((_) async {
 | 
			
		||||
    WidgetsBinding.instance.addPostFrameCallback((_) async {
 | 
			
		||||
      controller.text = VRouter.of(context).queryParameters['query'] ?? '';
 | 
			
		||||
      final server = await Store().getItem(_serverStoreNamespace);
 | 
			
		||||
      if (server?.isNotEmpty ?? false) {
 | 
			
		||||
 | 
			
		||||
@ -83,7 +83,7 @@ class SettingsStoriesController extends State<SettingsStories> {
 | 
			
		||||
  @override
 | 
			
		||||
  void initState() {
 | 
			
		||||
    super.initState();
 | 
			
		||||
    WidgetsBinding.instance?.addPostFrameCallback((_) {
 | 
			
		||||
    WidgetsBinding.instance.addPostFrameCallback((_) {
 | 
			
		||||
      setState(() {
 | 
			
		||||
        loadUsers = _loadUsers();
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
@ -359,7 +359,7 @@ class StoryPageController extends State<StoryPage> {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _setLoadingMode(bool mode) => loadingMode != mode
 | 
			
		||||
      ? WidgetsBinding.instance?.addPostFrameCallback((_) {
 | 
			
		||||
      ? WidgetsBinding.instance.addPostFrameCallback((_) {
 | 
			
		||||
          setState(() {
 | 
			
		||||
            loadingMode = mode;
 | 
			
		||||
          });
 | 
			
		||||
 | 
			
		||||
@ -71,7 +71,7 @@ class BackgroundPush {
 | 
			
		||||
 | 
			
		||||
  bool upAction = false;
 | 
			
		||||
 | 
			
		||||
  BackgroundPush._(this.client, {this.onFcmError}) {
 | 
			
		||||
  BackgroundPush._(this.client) {
 | 
			
		||||
    onLogin ??=
 | 
			
		||||
        client.onLoginStateChanged.stream.listen(handleLoginStateChanged);
 | 
			
		||||
    onRoomSync ??= client.onSync.stream
 | 
			
		||||
 | 
			
		||||
@ -28,10 +28,8 @@ class VoipPlugin extends WidgetsBindingObserver implements WebRTCDelegate {
 | 
			
		||||
        .catchError((e) => _currentConnectivity = ConnectivityResult.none);
 | 
			
		||||
    if (!kIsWeb) {
 | 
			
		||||
      final wb = WidgetsBinding.instance;
 | 
			
		||||
      wb?.addObserver(this);
 | 
			
		||||
      if (wb != null) {
 | 
			
		||||
        didChangeAppLifecycleState(wb.lifecycleState!);
 | 
			
		||||
      }
 | 
			
		||||
      wb.addObserver(this);
 | 
			
		||||
      didChangeAppLifecycleState(wb.lifecycleState!);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -11,7 +11,7 @@ class LoadingView extends StatelessWidget {
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    WidgetsBinding.instance?.addPostFrameCallback(
 | 
			
		||||
    WidgetsBinding.instance.addPostFrameCallback(
 | 
			
		||||
      (_) => VRouter.of(context).to(
 | 
			
		||||
        Matrix.of(context)
 | 
			
		||||
                .widget
 | 
			
		||||
 | 
			
		||||
@ -13,7 +13,7 @@ class LoginScaffold extends StatelessWidget {
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    WidgetsBinding.instance?.addPostFrameCallback((_) {
 | 
			
		||||
    WidgetsBinding.instance.addPostFrameCallback((_) {
 | 
			
		||||
      SystemChrome.setSystemUIOverlayStyle(
 | 
			
		||||
        const SystemUiOverlayStyle(
 | 
			
		||||
          statusBarIconBrightness: Brightness.light,
 | 
			
		||||
 | 
			
		||||
@ -253,7 +253,7 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
 | 
			
		||||
  @override
 | 
			
		||||
  void initState() {
 | 
			
		||||
    super.initState();
 | 
			
		||||
    WidgetsBinding.instance!.addObserver(this);
 | 
			
		||||
    WidgetsBinding.instance.addObserver(this);
 | 
			
		||||
    initMatrix();
 | 
			
		||||
    if (PlatformInfos.isWeb) {
 | 
			
		||||
      initConfig().then((_) => initSettings());
 | 
			
		||||
@ -382,7 +382,7 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
 | 
			
		||||
  void initMatrix() {
 | 
			
		||||
    // Display the app lock
 | 
			
		||||
    if (PlatformInfos.isMobile) {
 | 
			
		||||
      WidgetsBinding.instance!.addPostFrameCallback((_) {
 | 
			
		||||
      WidgetsBinding.instance.addPostFrameCallback((_) {
 | 
			
		||||
        ([TargetPlatform.linux].contains(Theme.of(context).platform)
 | 
			
		||||
                ? SharedPreferences.getInstance()
 | 
			
		||||
                    .then((prefs) => prefs.getString(SettingKeys.appLockKey))
 | 
			
		||||
@ -513,7 +513,7 @@ class MatrixState extends State<Matrix> with WidgetsBindingObserver {
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  void dispose() {
 | 
			
		||||
    WidgetsBinding.instance!.removeObserver(this);
 | 
			
		||||
    WidgetsBinding.instance.removeObserver(this);
 | 
			
		||||
 | 
			
		||||
    onRoomKeyRequestSub.values.map((s) => s.cancel());
 | 
			
		||||
    onKeyVerificationRequestSub.values.map((s) => s.cancel());
 | 
			
		||||
 | 
			
		||||
@ -10,6 +10,9 @@ list(APPEND FLUTTER_PLUGIN_LIST
 | 
			
		||||
  url_launcher_linux
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
list(APPEND FLUTTER_FFI_PLUGIN_LIST
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
set(PLUGIN_BUNDLED_LIBRARIES)
 | 
			
		||||
 | 
			
		||||
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 ${${plugin}_bundled_libraries})
 | 
			
		||||
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)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										45
									
								
								pubspec.lock
									
									
									
									
									
								
							
							
						
						
									
										45
									
								
								pubspec.lock
									
									
									
									
									
								
							@ -56,7 +56,7 @@ packages:
 | 
			
		||||
      name: archive
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "3.1.6"
 | 
			
		||||
    version: "3.1.11"
 | 
			
		||||
  args:
 | 
			
		||||
    dependency: transitive
 | 
			
		||||
    description:
 | 
			
		||||
@ -182,7 +182,7 @@ packages:
 | 
			
		||||
      name: collection
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "1.15.0"
 | 
			
		||||
    version: "1.16.0"
 | 
			
		||||
  connectivity_plus:
 | 
			
		||||
    dependency: "direct main"
 | 
			
		||||
    description:
 | 
			
		||||
@ -240,7 +240,7 @@ packages:
 | 
			
		||||
      name: coverage
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "1.0.3"
 | 
			
		||||
    version: "1.2.0"
 | 
			
		||||
  cross_file:
 | 
			
		||||
    dependency: transitive
 | 
			
		||||
    description:
 | 
			
		||||
@ -394,7 +394,7 @@ packages:
 | 
			
		||||
      name: fake_async
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "1.2.0"
 | 
			
		||||
    version: "1.3.0"
 | 
			
		||||
  ffi:
 | 
			
		||||
    dependency: transitive
 | 
			
		||||
    description:
 | 
			
		||||
@ -687,7 +687,7 @@ packages:
 | 
			
		||||
      name: flutter_typeahead
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "3.2.4"
 | 
			
		||||
    version: "3.2.5"
 | 
			
		||||
  flutter_web_auth:
 | 
			
		||||
    dependency: "direct main"
 | 
			
		||||
    description:
 | 
			
		||||
@ -726,13 +726,6 @@ packages:
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    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:
 | 
			
		||||
    dependency: "direct main"
 | 
			
		||||
    description:
 | 
			
		||||
@ -905,7 +898,7 @@ packages:
 | 
			
		||||
      name: js
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "0.6.3"
 | 
			
		||||
    version: "0.6.4"
 | 
			
		||||
  just_audio:
 | 
			
		||||
    dependency: "direct main"
 | 
			
		||||
    description:
 | 
			
		||||
@ -1005,7 +998,7 @@ packages:
 | 
			
		||||
      name: material_color_utilities
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "0.1.3"
 | 
			
		||||
    version: "0.1.4"
 | 
			
		||||
  matrix:
 | 
			
		||||
    dependency: "direct main"
 | 
			
		||||
    description:
 | 
			
		||||
@ -1161,7 +1154,7 @@ packages:
 | 
			
		||||
      name: path
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "1.8.0"
 | 
			
		||||
    version: "1.8.1"
 | 
			
		||||
  path_drawing:
 | 
			
		||||
    dependency: transitive
 | 
			
		||||
    description:
 | 
			
		||||
@ -1361,9 +1354,11 @@ packages:
 | 
			
		||||
  qr_code_scanner:
 | 
			
		||||
    dependency: "direct main"
 | 
			
		||||
    description:
 | 
			
		||||
      name: qr_code_scanner
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
      path: "."
 | 
			
		||||
      ref: fix_break_changes_platform
 | 
			
		||||
      resolved-ref: "0feca6f15042c279ff575c559a3430df917b623d"
 | 
			
		||||
      url: "https://github.com/xeinebiu/qr_code_scanner.git"
 | 
			
		||||
    source: git
 | 
			
		||||
    version: "0.7.0"
 | 
			
		||||
  qr_flutter:
 | 
			
		||||
    dependency: "direct main"
 | 
			
		||||
@ -1616,7 +1611,7 @@ packages:
 | 
			
		||||
      name: source_span
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "1.8.1"
 | 
			
		||||
    version: "1.8.2"
 | 
			
		||||
  sqflite:
 | 
			
		||||
    dependency: transitive
 | 
			
		||||
    description:
 | 
			
		||||
@ -1686,21 +1681,21 @@ packages:
 | 
			
		||||
      name: test
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "1.19.5"
 | 
			
		||||
    version: "1.20.2"
 | 
			
		||||
  test_api:
 | 
			
		||||
    dependency: transitive
 | 
			
		||||
    description:
 | 
			
		||||
      name: test_api
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "0.4.8"
 | 
			
		||||
    version: "0.4.9"
 | 
			
		||||
  test_core:
 | 
			
		||||
    dependency: transitive
 | 
			
		||||
    description:
 | 
			
		||||
      name: test_core
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "0.4.9"
 | 
			
		||||
    version: "0.4.11"
 | 
			
		||||
  timezone:
 | 
			
		||||
    dependency: transitive
 | 
			
		||||
    description:
 | 
			
		||||
@ -1882,7 +1877,7 @@ packages:
 | 
			
		||||
      name: vector_math
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "2.1.1"
 | 
			
		||||
    version: "2.1.2"
 | 
			
		||||
  very_good_analysis:
 | 
			
		||||
    dependency: transitive
 | 
			
		||||
    description:
 | 
			
		||||
@ -1945,7 +1940,7 @@ packages:
 | 
			
		||||
      name: vm_service
 | 
			
		||||
      url: "https://pub.dartlang.org"
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "7.5.0"
 | 
			
		||||
    version: "8.2.2"
 | 
			
		||||
  vrouter:
 | 
			
		||||
    dependency: "direct main"
 | 
			
		||||
    description:
 | 
			
		||||
@ -2059,5 +2054,5 @@ packages:
 | 
			
		||||
    source: hosted
 | 
			
		||||
    version: "3.1.0"
 | 
			
		||||
sdks:
 | 
			
		||||
  dart: ">=2.16.1 <3.0.0"
 | 
			
		||||
  dart: ">=2.17.0-0 <3.0.0"
 | 
			
		||||
  flutter: ">=2.8.0"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										13
									
								
								pubspec.yaml
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								pubspec.yaml
									
									
									
									
									
								
							@ -4,7 +4,7 @@ publish_to: none
 | 
			
		||||
version: 1.4.0+2323
 | 
			
		||||
 | 
			
		||||
environment:
 | 
			
		||||
  sdk: '>=2.12.0 <3.0.0'
 | 
			
		||||
  sdk: ">=2.12.0 <3.0.0"
 | 
			
		||||
 | 
			
		||||
dependencies:
 | 
			
		||||
  adaptive_dialog: ^1.5.1
 | 
			
		||||
@ -43,11 +43,10 @@ dependencies:
 | 
			
		||||
  flutter_secure_storage: ^5.0.2
 | 
			
		||||
  flutter_slidable: ^1.2.0
 | 
			
		||||
  flutter_svg: ^0.22.0
 | 
			
		||||
  flutter_typeahead: ^3.2.4
 | 
			
		||||
  flutter_typeahead: ^3.2.5
 | 
			
		||||
  flutter_web_auth: ^0.4.0
 | 
			
		||||
  flutter_webrtc: ^0.8.2
 | 
			
		||||
  future_loading_dialog: ^0.2.3
 | 
			
		||||
  gaeilge_flutter_l10n: ^1.0.0
 | 
			
		||||
  geolocator: ^7.6.2
 | 
			
		||||
  hive_flutter: ^1.1.0
 | 
			
		||||
  image: ^3.1.1
 | 
			
		||||
@ -147,9 +146,15 @@ dependency_overrides:
 | 
			
		||||
      url: https://github.com/TheOneWithTheBraid/keyboard_shortcuts.git
 | 
			
		||||
      ref: null-safety
 | 
			
		||||
  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
 | 
			
		||||
  # Upstream pull request: https://github.com/AdamJonsson/snapping_sheet/pull/84
 | 
			
		||||
  snapping_sheet:
 | 
			
		||||
    git:
 | 
			
		||||
      url: https://github.com/TheOneWithTheBraid/snapping_sheet.git
 | 
			
		||||
      ref: listenable
 | 
			
		||||
      ref: listenable
 | 
			
		||||
 | 
			
		||||
@ -12,6 +12,9 @@ list(APPEND FLUTTER_PLUGIN_LIST
 | 
			
		||||
  url_launcher_windows
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
list(APPEND FLUTTER_FFI_PLUGIN_LIST
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
set(PLUGIN_BUNDLED_LIBRARIES)
 | 
			
		||||
 | 
			
		||||
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 ${${plugin}_bundled_libraries})
 | 
			
		||||
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)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user